解决VUE3 Vite打包后动态图片资源不显示问题

m0_56385144 2024-10-02 10:03:04 阅读 55

<code><script setup>

let url = ref('')

const setimg = (item)=>{

let src = `../assets/image/${e}.png`

url.value = src

}

</script>

<template>

<div v-for="item in 6">code>

<h1 @click="setimg(item)">{ { item }}</h1>code>

</div>

<img :src="url" alt="">code>

<img src="" alt="">code>

</template>

原因:Vite打包时不会打包以模板字符串包裹的图片相对路径,所以vite不知道此处要用哪个图片

方法一  将静态资源放到pbulic文件中         

方法二  通过import 逐个导入图片资源

import one from '../assets/image/1.png'

import two from '../assets/image/2.png'

方法三  在函数中动态导入  

const setimg = async (e)=>{

// 动态引入

console.log(e); //图片名

let src = await import(`../assets/image/${e}.png`);

url.value = src.default

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。