vue3中的img标签使用动态链接无法显示

例: 此时我再代码中使用了 动态的img

下面是处理的数据

此时浏览器会把这个路径当成是网络资源去进行加载 会无法显示

解决办法 

1.  网上大部分推荐去使用require包裹住  但是require 是 Node.js 中的一个模块加载函数,在浏览器中并不是默认支持的 因此使用会报错误

2. 使用 new URL() 语法去解决静态资源路径加载   他比较实用于加载动态的image路径

处理动态路径方法

模板使用 

### Vue 动态设置 `img` 标签图片路径的方法 在 Vue.js 应用程序中,当尝试动态绑定图像源 (`src`) 属性时,如果仅提供相对或模块解析路径,则可能会遇到图像无法加载的情况。这是因为 Webpack 需要显式的导入指令来处理静态资源。 #### 使用 `require()` 函数引入图片 对于模板中的数据绑定表达式,可以采用如下方式: ```html <div> <img :src="getImagePath(item)" /> </div> ``` 对应的 JavaScript 或 TypeScript 方法定义为: ```javascript methods: { getImagePath(item) { return require(`@/assets/images/${item.imageName}`); // 假设 images 文件夹位于 src/assets 下面 } } ``` 这种方法确保了即使是在构建过程中也能正确解析并打包所需的图片文件[^1]。 #### 数据属性内直接调用 `require()` 另一种常见做法是直接在组件的数据选项里使用 `require()` 来预加载图片: ```javascript data() { return { items: [ { id: 1, imageName: &#39;example.jpg&#39;, imagePath: require(&#39;@/assets/images/example.jpg&#39;) }, // 更多项目... ] }; }, template: ` <ul> <li v-for="item in items" :key="item.id"> <img :src="item.imagePath"/> </li> </ul>` ``` 这种方式适用于那些不需要频繁更改的图片链接,并且可以在渲染前就准备好所有的依赖关系[^2]。 #### 处理绝对路径的问题 需要注意的是,在某些情况下(比如开发服务器配置不同),可能需要调整Webpack 的 alias 设置以便更好地支持绝对路径引用。通常建议将公共资源放置于 `/public` 目录下而不是 `static`,因为后者已经被弃用了;而前者可以直接通过根 URL 访问而不必经过编译过程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值