在img标签上使用:src动态绑定图片时发现图片没有加载出来,
网上查资料发现是vue项目目录结构问题,简单来说就是在编译过后,vue项目的路径结构和之前会不一样,导致图片路径不对,读取不到图片
网上的解决方法有俩种
- 将图片放到static文件夹下,static文件夹下的文件路径是不会改变的,可以读取到
- 使用require(图片路径);来读取图片
- 使用import导入图片
先说下第3种方法,比较鸡肋,一张图片导入太麻烦了
第二种方法也不怎么灵活,require好像是只支持字符串的字面量,有另一个博客有提到一种方法https://blog.csdn.net/oTianKongLan123/article/details/95459779
js代码
getImageUrl (taskImg) {
let a =require('@/assets/images/'+taskImg);
return a;
}
html代码
<img :src="getImageUrl(img)" style="width: 15px;height: 15px;">
基础思路就是将src的值传到方法中去,然后通过require来获取图片,我这边直接拼接的空串想转成字符串传递到require中去,结果失败了,好像是require只支持单纯的字符串,这种方法我也不确定是否可行
第一种方法就是我最后使用的方法,也是比较推荐的,直接把图片都放到src同级的static目录下就行了