vite2+vue3引入动态图片报错404问题

1 篇文章 0 订阅

出现这一问题大致可以归结为,vite打包的时候会忽略config.js文件中配置的@ 相当于src这么一说,

// vite.config.js
... 
resolve: {
    alias: {
      "~": path.resolve(__dirname, './'),
      "@": path.resolve(__dirname, 'src')
    }
  },
...

静态图片路径是相对路径还是绝对路径都可以,相当于写死静态文件地址,

<img src="@/assets/img/common/pokemon/other_imgs/bg.png" alt="" />

方法一:动态图片的话,把@换成根目录开始就可以展示了

<img 
v-lazyload="`/src/assets/img/${item.file_name)}`" alt="" class="pokemon-list--box__img" >

方法二:利用new URL()方法即可

// 动态获取src
const getImageUrl = (item) => {
  /* 
  new URL (url, [base])
    url —— 完整的 URL,或者仅路径(如果设置了 base),
    base —— 可选的 base URL:如果设置了此参数,且参数 url 只有路径,则会根据这个 base 生成 URL

    其实不管是用new URL方法还是动态:src 都明白了一点,动态地址 不解析 打包配置的 @符号,要么../ 要么/src 
  */
  return  =  new URL(`../../../assets/img/${item.file_name)}`,import.meta.url)
};

总结:如果在动态引入的时候,直接使用根目录或者是绝对路径,不用配置替换符@即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值