静态资源的动态引入

有常用的2种方式:
1、css中的静态路径
2、img中的src静态路径
运行的环境是打包后的图片路径,而打包后的图片通常会生成一个文件指纹,而我们在写代码时,写的是源码中的路径和文件名,如果是静态路径,则会自动转换。
在这里插入图片描述

解决方式:

1、最笨的方式:用import引入,但是每张图都需要引入

<div class="img" :style="{backgroundImage: `url(${img})`}"> 234</div>
import img from '../../assets/aesthetics.png'
export default {
  data() {
    return {
      img,
    }
  },
}

在这里插入图片描述

2、用require

<div class="img" :style="{ backgroundImage: `url(${require(`@/assets/${img}.png`)})` }"> 234</div>
data() {
	img: 'aesthetics'
}

3、静态文件放在public中,但这种丢失了文件指纹

<div class="img" :style="{backgroundImage: `url(/static/img/${img}.png)`}"> 234</div>
data() {
	img: 'aesthetics'
}

在这里插入图片描述
4、动态导入,静态文件放在public中,用 new URL
new URL() 是 JavaScript 中用于创建 URL 对象的构造函数。它可以将字符串形式的 URL 解析为一个可访问和操作的对象。
new URL() 构造函数接受两个参数:
URL 字符串:表示要解析的 URL 的字符串,且这个值必须一部分动态一部分静态。
基础 URL(可选):表示相对 URL 的基础 URL,用于解析相对 URL 时使用。

 <div class="img" :style="{ backgroundImage: `url(${bind('aesthetics')})` }"> 234</div>
 
function bind(val) {
  var imagePath = `/static/img/${val}.png`;
  var url = new URL(imagePath, window.location.href);
  return url.pathname
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值