vue遍历图片路径不生效

探索
  • 需求
    遍历数组,将图片的url赋值给相应的img的src属性。

  • 问题:
    图片没有预期加载出来。在这里插入图片描述
    data里面的数据:
    在这里插入图片描述
    查看控制台:
    在这里插入图片描述
    表面上看,路径数据一致,那怎么没有显示图片。
    冷静一想,其实这个读取的路径其实是错误的。因为打包后的页面访问路径应该是基于public的。
    所以,我尝试把good.png放进入public,然后修改他的路径为./good.png。这样的话,在开发环境下,这个路径是对的。
    数据修改如下:
    在这里插入图片描述
    public也导入该图片:
    在这里插入图片描述

  • 验证猜想:
    在这里插入图片描述
    果然,在下蒙对了。
    但是,我就想把图片资源放在src/assets里面,那么办呢。
    百度一下,说是要用require,这样引入的图片路径能够被识别。

  • 再来试一下:
    在这里插入图片描述

  • 查看效果:
    在这里插入图片描述
    干得漂亮,正常显示。
    卧槽,那为啥加个require就成了?

  • 继续查看console
    在这里插入图片描述
    卧槽,路劲变成了/img/good.c2abb445.png
    自然一想,应该是用了require后,在开发环境下,会自动生成一个img文件夹来存放这个图片。

  • 回想起来,为啥我直接把相对路径放再html里面,图片也能生效呢?
    在这里插入图片描述
    在这里,我们用的是静态变量引入的src,而在上面遍历图片的时候我们用的是动态变量引入的src。
    在这里插入图片描述

  • 再查看console
    在这里插入图片描述
    原来静态变量引入的相对路径,在开发环境也是会自动打包的。

当然,如果使用绝对路径就不用考虑这么多问题。但是俺们有时候不得不用相对路径呀。

总结
  1. 如果是静态变量src引入的图片资源,是可以直接用相对路径来实现的。
  2. 如果是动态变量src引入的图片资源,则必须使用require来引入相对路径。
  3. 如果是动态变量src,又不想要requrie呢?那么请把图片资源放在public,然后根据public是根路径去写图片路径。

以前知道用require,但是不知其所以然,好了,现在明白个七七八八了。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中,可以使用v-bind指令或简写的冒号(:)来动态绑定img标签的src属性。根据你提供的代码和需求,请参考以下步骤来实现动态绑定src属性: 1. 在Vue实例的data属性中定义一个存储图片地址的数组imgList,其中包含多个对象,每个对象代表一张图片,其中包含imgNo、src、width和height属性。 2. 在Vue模板中,使用v-for指令遍历imgList数组,为每个元素创建一个img标签,并使用:item指令将当前元素绑定到item变量上。 3. 在img标签中,使用v-bind指令或简写的冒号(:)将item.src绑定到src属性上,这样每个img标签的src属性都会根据对应的item对象的src属性动态更新。 4. 若要使用网络图片,需要在index.html页面的<head>标签中添加<meta name="referrer" content="no-referrer">,以防止浏览器发送Referer头信息。这样可以绕过一些图片防盗链的限制。 下面是一个示例代码: ```vue <template> <el-row :gutter="20"> <el-col :span="6" v-for="item in imgList" :key="item.imgNo"> <div class="grid-content bg-purple"> <img :key="item.imgNo" draggable="false" :src="item.src"> </div> </el-col> </el-row> </template> <script> export default { data() { return { imgList: [ { imgNo: 1, src: 'https://gitee.com/guo-xiaoya/images/raw/master/img/202304260905239.png', width: 40, height: 40 }, // 其他图片对象 ] }; } }; </script> ``` 通过以上步骤,你可以在Vue中实现动态绑定img标签的src属性,以显示不同的图片

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值