Vue中img的src属性绑定与static文件夹
2017-12-14 15:52
323 查看
不少人在vue的开发中遇到这样一个问题: img的src属性绑定url变量,然而图片加载失败。
大部分的情况中,是开发者使用了错误的写法,例如:
这样写肯定是不对的,正确的写法应该使用v-bind:
不过,有时候即使使用了正确的语法,依旧无法显示图片,因为你的imgUrl使用了本地图片的路径。
例如,有下面一个文件结构:
现在,我们要在App.vue里使用位于src/assets/目录下的logo.png图片,于是,我们设:
奇怪的事情出现了,图片加载失败。查看网页源代码,发现一个错误:
看这个错误代码,我们发现,网页把根域名作为相对路径的根目录了,然而我们文件的路径是相对于项目文件的根目录的,当然就找不到了。
既然这样,那我们去找build后的dist文件夹。发现文件的结构是这样:
是不是说只要把url改成./static/img/logo.png就可以了呢?依然是不行的。打开img文件夹我们可以发现,所有的文件名后都被添加上了一个随机字符串,原始的文件名已经无法对应了。
那么,到底应该怎么加载本地图片呢?回头看vue-cli的文件结构,发现其中有一个叫做static的文件夹,尝试将logo.png放入这个文件夹,然后修改imgUrl:
成功读取到了logo.png. 执行npm run build后查看dist文件,发现logo.png原封不动地放在了根目录下。
原来,之前的目录结构是有问题的,图片一类的静态文件,应该放在这个static文件夹下,这个文件夹下的文件(夹)会按照原本的结构放在网站根目录下。这时我们再去使用/static绝对路径,就可以访问这些静态文件了。
另外,如果说想在不调整目录结构的情况下读取本地图片,还有一个方法,那就是直接传入图片编码。即:
这样可以读到项目路径下的图片,但是要注意,因为CommonJS只允许使用字符串字面量,所以这种方法的灵活性依旧很差,所以还是推荐将静态文件放入static文件夹下。
大部分的情况中,是开发者使用了错误的写法,例如:
<img src="{{ imgUrl }}"/>
这样写肯定是不对的,正确的写法应该使用v-bind:
<img v-bind:src="imgUrl"/>
不过,有时候即使使用了正确的语法,依旧无法显示图片,因为你的imgUrl使用了本地图片的路径。
例如,有下面一个文件结构:
现在,我们要在App.vue里使用位于src/assets/目录下的logo.png图片,于是,我们设:
imgUrl = './assets/logo.png'
奇怪的事情出现了,图片加载失败。查看网页源代码,发现一个错误:
看这个错误代码,我们发现,网页把根域名作为相对路径的根目录了,然而我们文件的路径是相对于项目文件的根目录的,当然就找不到了。
既然这样,那我们去找build后的dist文件夹。发现文件的结构是这样:
是不是说只要把url改成./static/img/logo.png就可以了呢?依然是不行的。打开img文件夹我们可以发现,所有的文件名后都被添加上了一个随机字符串,原始的文件名已经无法对应了。
那么,到底应该怎么加载本地图片呢?回头看vue-cli的文件结构,发现其中有一个叫做static的文件夹,尝试将logo.png放入这个文件夹,然后修改imgUrl:
imgUrl = '/static/logo.png'
成功读取到了logo.png. 执行npm run build后查看dist文件,发现logo.png原封不动地放在了根目录下。
原来,之前的目录结构是有问题的,图片一类的静态文件,应该放在这个static文件夹下,这个文件夹下的文件(夹)会按照原本的结构放在网站根目录下。这时我们再去使用/static绝对路径,就可以访问这些静态文件了。
另外,如果说想在不调整目录结构的情况下读取本地图片,还有一个方法,那就是直接传入图片编码。即:
imgUrl = require('./assets/logo.png')
这样可以读到项目路径下的图片,但是要注意,因为CommonJS只允许使用字符串字面量,所以这种方法的灵活性依旧很差,所以还是推荐将静态文件放入static文件夹下。
相关文章推荐
- Vue中img的src属性绑定与static文件夹实例
- Vue中img的src属性绑定与static文件夹
- 关于vue v-for循环解决img标签的src动态绑定问题
- Vue.js学习笔记:v-bind属性绑定(class,src)
- 百度ueditor组件上传图片后如何设置img标签里的src、title、alt等属性
- Vue.js 动态为img的src赋值方法
- 【Vue】-(5) 计算属性与class,style绑定
- HTML 修改img标签的src属性
- 正则获取img的src和其他属性
- 解决javascript动态改变img的src属性图片不显示问题
- Vuejs——(3)计算属性,样式和类绑定
- img src属性 DOM编程下 img.src与element.getAttribute("src")的区别
- 优化网站设计(三十五):避免将img的src属性设置为空白
- Vue双向绑定原理(二)访问器属性defineProperty()和发布/订阅模式
- 解决Vue.js 2.0 有时双向绑定img src属性失败的问题
- img标签src属性没变,改变起引用的图片,刷新页面仍然显示之前的图片
- Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
- js改变img标签的src属性在IE下出问题的解决方法
- img src属性 DOM编程下 img.src与element.getAttribute("src")的区别
- 用js动态的改变img标签里面的src属性实现图片的循环切换