标签:-o html for images 静态资源 模版 路径 发送 ase
当我在html模块或者css中引入图片的时候用相对路径,例:
<div> <img src="../../assets/img/policeImg/tt.png"> </div>
这时候图片可以正常显示,但是我想把图片路径动态化,所以我会把图片路径绑定在data中。
<div> <img :src="img"> </div> <script> export default { data () { return { img: ‘../../assets/img/policeImg/tt.png‘ } } } </script>
我们会发现图片显示不出来。
第一种情况图片放在assets文件夹下面,在html模版中直接引入或者在css中引入,
如下:
我们可以看到不管是在html中引入或在css中引入图片都会被解析成base64编码,打包之后dist文件夹中也不会有图片,而是在压缩文件中有base64编码。
解释:因为加载一张图片就需要发送一次http请求,会降低页面性能,这个问题可以通过url-loader解决。url-loader会将引入的图片编码,生成dataURI。相当于把图片数据翻译成一串字符,再把这些字符打包到文件当中,最终只需要引入这个文件就可以访问这个图片。当然如果图片较大,编码会消耗性能,因此url-loader提供了一个limit参数,小于limit字节的文件会被转为DataURl,大于limit的还会使用file-loader进行copy,一般会放在static文件夹下面。
第二种情况图片放在assets文件夹下面,在js中引入,
如下:
从上图我们可以发现如果在js中直接写,编译后图片是无法显示的,但是如果用require或import就可以正常展示,而且跟在html中或者css中直接引入效果是一样的。
第三种情况图片放在static文件夹下面,在html、css、js中直接引入,我们会发现图片都可以正常展示。
标签:-o html for images 静态资源 模版 路径 发送 ase
原文地址:https://www.cnblogs.com/yjiangling/p/11751813.html