在vue中,<img :src=“./logo.png“ alt=““ />不显示的原因

 今天写vue项目中,在动态渲染拿到的数据时,其他数据都可以渲染出现,就是图片不能出现。

<img :src="item.goods_img" alt="" />

一开始找了许多相关的文章,就是没有相关的解决问题,知道找到

路由地址:vue动态加载图片地址时报错404的解决方案 - 牧羊狼 - 博客园 (cnblogs.com)

经过我的修改:

<img :src="require('./'+ item.goods_img+'.png')" alt="" />

页面也是成功的出来了,原因是:“图片资源是静态文件,而静态资源可以用两种方式进行处理”:

在vue的项目中,webpack使用的是vue-loader,在编译过程中,所有的资源路径例如 <img src="...">、background: url(...) 和 @import 会作为模块依赖。

而动态加载图片,图片的地址无法被解析,因此最终没有被打包到文件中,找不到该图片

细说就是:

在Vue项目中,如果动态加载图片的地址无法被解析,最终导致该图片没有被打包到文件中,通常是因为webpack无法静态分析动态加载路径,无法在编译时确定图片的路径。这可能会导致图片在打包后无法正确加载,或者在运行时出现404错误。

为了解决这个问题,可以使用require或import语法来引入动态加载的图片,这样webpack可以正确解析图片路径并将其打包到文件中。例如:

const imgUrl = require('./path/to/image.jpg'); // 或者 import imgUrl from './path/to/image.jpg';

这样做可以确保webpack在编译时正确解析图片路径并将其打包到文件中,从而避免动态加载图片路径无法被解析的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值