vue动态加载图片问题,报错Cannot find module "."

正常在<img>标签加载图片的方式是

<img src="../assets/product2.jpg" alt="">
但是在vue中动态加载图片,直接用src是无效的,需要使用v-bind动态加载

<img :src="product.imgSrc" alt=""> //正确
<img :src="../assets/product2.jpg" alt=""> //直接使用字符串报错,src应该是变量
 但是 :src的值product.imgSrc = "../assets/product2.jpg",图片仍然无法加载出来,需要使用require才可以。

但是,如果你这么使用require

src="../assets/product2.jpg";
imgSrc = require("../assets/product2.jpg")
还是会报错

Error: Cannot find module "."
    at webpackMissingModule (IndexPage.vue?d485:138)
    at VueComponent.eval (IndexPage.vue?d485:138)
因为require它是打包工具所需要的标识,你搞成运行时通过变量去定义的话,它就没办法打包了啊,

require里的正确的格式必须是path,可以这么写:

var src = "product2.jpg";
 
let imgSrc = require('../assets/'+imgUrl);
此外,你还可以使用以下方法去解决这个问题:

解决方案1:背景图的方式

<div :style="{backgroundImage: 'url(' + imgPath + ')'}"></div>
解决方案3: 静态图片的方式

把图片放到src同级的static目录(build/build.js文件中有一段代码是把static目录拷贝到dist/static的),比如图片放在static/a.png
————————————————
版权声明:本文为CSDN博主「cxx4220」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cxx4220/article/details/103683518

 

 

 

https://blog.csdn.net/hzxonlineok/article/details/96307270

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值