vite版本:vite3;vue版本:vue3

打包上线后发现,动态绑定的图片皆失效。

单图可用 import 导入解决,但是若有大量图片,一一导入则耗时耗力。

vue2+webpack 可用 require 解决批量导入资源的问题。

vite中无 require ,vite3 需要使用  import.meta.glob(‘路径’ , {eager:true}) 导入

 

实际解决如下:

1、首先在存放静态图片的路径下新建个 js文件

 

 

2、将所有图片用vite3批量导入资源的方法导入进来后,循环将所有图片处理成一个大对象

用图片具体的名称做键,导入该图片的地址做值

 1 // 将所有图片导入进来
 2 const req1 = import.meta.glob('./images/*.*', {eager: true})
 3 const req2 = import.meta.glob('./images/casesList/*.*', {eager: true})
 4 const req3 = import.meta.glob('./images/hardware_agv/*.*', {eager: true})
 5 const req4 = import.meta.glob('./images/hardware_sj/*.*', {eager: true})
 6 const req5 = import.meta.glob('./images/software/*.*', {eager: true})
 7 
 8 const req = {...req1, ...req2, ...req3, ...req4, ...req5}
 9 
10 const imagesMap = {}
11 
12 // 循环所有图片,将图片名设置成键,值为导入该图片的地址
13 for (const key in req) {
14     // let name = key.replace(/(\.\/images\/|\..*)/g, '')
15     let name =key.split('/').slice(-1)[0].split('.')[0]
16     
17     // 抛出图片大对象后,文件页面直接引入后将图片的具体名称作为属性就能导入该图片
18     imagesMap[name] = req[key].default
19 }
20 
21 export default imagesMap

 

 3、在页面可直接引入图片大对象后,将图片具体名作为属性取值

 

原文地址:http://www.cnblogs.com/HE0318bei/p/16918206.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性