public文件夹下放置了一些静态资源如图片之类的
我现在在src/views/house/index.vue中调用public中的图片
直接是./图片名称
但是在这个页面下方<style>中,再去调用public中的图片时,这样写就报错。必须写成
图片名称前面必须加../../../public/图片
然而在这个页面的<script>中,又变成了这样写:
必须加require
谁能给普及下这三个路径调用的方式?
public文件夹下放置了一些静态资源如图片之类的
我现在在src/views/house/index.vue中调用public中的图片
直接是./图片名称
但是在这个页面下方<style>中,再去调用public中的图片时,这样写就报错。必须写成
图片名称前面必须加../../../public/图片
然而在这个页面的<script>中,又变成了这样写:
必须加require
谁能给普及下这三个路径调用的方式?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
区别在于:编辑器和打包工具知不知道(以及需不需要知道)那个字符串是一张图片的 URL 。
style.backgroundImage: url
,那么她就会检查你这张图是否存在,没有的话就会警告;所以:
template
里的icon
属性,只是一个没有意义的字符串,所以二者都不会去管,哪怕你写一个"just for test"
都没关系,这俩不会管,最终发现问题的会是浏览器(并非绝对,看配置);style
里的background:url
,明确代表一张图片,必须确定这张图片是存在的,否则编辑器可能警告,打包工具则有可能报错(看配置);script
里,字符串是没有明确意义的,如果你想告诉打包工具这个字符串是一张图片(或者任何文件资源),那么你就要用require
函数指向文件地址。使用
Vue
的时候还会出现一种有趣的现象:配置了静态资源目录的alias
,这样就可以使用@/
代替静态资源目录,打包工具(vue-cli
或vite
)往往知道字符串指向的地址,但是编辑器可能知道,出现很多警告,并且提示功能也用不了。这个问题,针对不同的编辑器有不同的解决方案。