当前位置: 首页 > news >正文

vue中动态渲染静态图片资源

不报错且f12查看元素的时候,显示的src说明已经渲染到html的src上,但是就是不显示在页面上

原因

在vue上,动态渲染静态图片资源(比如从assets文件夹加载的图片)需要注意打包工具对静态资源的解析方式

由于vue2的脚手架工具是vue-cil,而vue-cil的底层是基于webpack,vue3的脚手架工具是create-vue,create-vue的底层是基于vite,所以两者的底层打包工具不一样,相应的对静态资源的解析方式也不一样

vue2解决办法

方法一

需要require动态加载静态资源

<template><div><div v-for="(item, index) in images" :key="index"><img :src="getImagePath(item)" alt="image"></div></div>
</template><script>
export default {data() {return {images: ['image1.png', 'image2.png', 'image3.png'], // 图片文件名};},methods: {getImagePath(image) {// 使用 require 加载图片资源return require(`@/assets/images/${image}`);},},
};
</script>

方法二

使用webpack提供的静态资源路径解析~

<template><div><div v-for="(item, index) in images" :key="index"><img :src="`~@/assets/images/${item}`" alt="image"></div></div>
</template><script>
export default {data() {return {images: ['image1.png', 'image2.png', 'image3.png'],};},
};
</script>

vue3解决办法

如果你的项目是通过vite创建的vue3项目的话,应该使用vite提供的静态资源载入方法

requie是webpack提供的一种加载能力,所以vite不能用require方法

方法一

使用new URL(`   `, import.meta.url).href

<template><div><div v-for="(item, index) in images" :key="index"><img :src="getImagePath(item)" alt="image"></div></div>
</template><script>
export default {data() {return {images: ['image1.png', 'image2.png', 'image3.png'],};},methods: {getImagePath(image) {// 使用 new URL 加载图片资源return new URL(`../assets/images/${image}`, import.meta.url).href;},},
};
</script>

方法二

如果路径是动态拼接的,可以直接在模板中拼接路径

<template><div><div v-for="(item, index) in images" :key="index"><img :src="`/src/assets/images/${item}`" alt="image"></div></div>
</template><script>
export default {data() {return {images: ['image1.png', 'image2.png', 'image3.png'],};},
};
</script>

http://www.lryc.cn/news/488260.html

相关文章:

  • 管伊佳ERP,原名华夏ERP,一个简约易上手的国产ERP系统
  • 学习虚幻C++开发日志——委托(持续更新中)
  • 开窗函数 - first_value/last_value
  • 「一」HarmonyOS端云一体化概要
  • nodejs21: 快速构建自定义设计样式Tailwind CSS
  • 从JSON数据提取嵌套字段并转换为独立列的简洁方法
  • 湘潭大学软件工程算法设计与分析考试复习笔记(四)
  • 特征交叉-DeepCross Network学习
  • stm32cubemx+VSCODE+GCC+makefile 开发环境搭建
  • Go语言中的Defer机制详解与示例
  • H.265流媒体播放器EasyPlayer.js H5流媒体播放器如何验证视频播放是否走硬解
  • ms-hot目录
  • vulfocus在线靶场:骑士cms_cve_2020_35339:latest 速通手册
  • AI Large Language Model
  • React Native的`react-native-reanimated`库中的`useAnimatedStyle`钩子来创建一个动画样式
  • FastJson反序列化漏洞(CVE-2017-18349)
  • 【优选算法篇】分治乾坤,万物归一:在重组中窥见无声的秩序
  • C++:探索AVL树旋转的奥秘
  • 2. Django中的URL调度器 (自定义路径转换器)
  • 深度学习:神经网络中线性层的使用
  • 【刷题】算法设计题+程序设计题【2】2019-2024
  • 搭建es环境
  • 阿里云和七牛云对象存储区别和实现
  • uniapp微信小程序接入airkiss插件进行WIFI配网
  • 03 —— Webpack 自动生成 html 文件
  • Python毕业设计选题:基于python的豆瓣电影数据分析可视化系统-flask+spider
  • 抽象类能使用final修饰吗?
  • C语言内存:我家大门常打开
  • 路由协议——iBGP与EBGP
  • 【Linux】基础02