VueCli动态加载图片踩坑,如何使用require(变量)动态获取图片

之前加载静态图片的时候是这么写的

反斜杠的方式,在动态加载图片的时候依然这么写,但是始终加载不出图片,把变量名换乘常量又好了,奇怪了一整天,始终没弄出来,原来是路径的写法问题,动态加载图片的时候需要在路径中加上@符号的方式

  • 使用字符串拼接,实现动态加载图片:require("@/" + src)

看个简单例子就懂了

在template里引用方法getImgUrl():

<div v-for="(item, index) in dataImg" :key="index">
	<img :src="getImgUrl(item.src)"/>
</div>
  • 在method里实现,不使用字符串拼接:
getImgUrl() {
    // src的值是你绝对路径下图片的地址
	return require("@/assets/comic/吾猫当仙.jpg")
}
  • 在method里实现,使用字符串拼接,有多种方式:
// 一个函数只能一个return,为了方便看,就不注释了

getImgUrl(src) {
    // src的值是你绝对路径下图片的地址,此地址需省略开头的 @/ 
    
    // 方法一:此处的src是:assets/comic/吾猫当仙.jpg
    return require("@/" + src);	
    
    // 方法二:此处的src是:comic/吾猫当仙.jpg
    return require("@/assets/" + src);	
    
    // 方法三:此处的src是:吾猫当仙.jpg
    return require("@/assets/comic/" + src);
	
	// 还有方法四,五,六……同理
},

切记!

至少要将 @/ 需要拿出来,如果不拿出来,就无法解析成正确的图片地址!

噢耶!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值