vue打包中background-image图片路径问题

按照以往在css文件中写background:url('图片路径'),完成后加载竟然显示出错,起初以为路径不对,检查了几遍,仍然没有问题。最后百度找答案,发现不少同行都遇到过这种问题,遂记录下自己所采用的解决方式:

data () {
    return {
        img: require('你的图片路径')
    }
}

div的写法:

<div :style="{backgroundImage: 'url(' + img + ')'}">
</div>

更简便的写法:

<div :style="{backgroundImage:`url(${img})`}">
</div>

 

原文链接:https://www.cnblogs.com/anns/p/8565033.html

### 动态更改 `background-image` 的方法 在 Vue 中有多种方式可以动态更改组件的背景图片。一种常见的方式是在 `<style>` 标签中定义默认样式,并通过 JavaScript 或者计算属性来改变特定元素上的内联样式。 #### 使用数据绑定与计算属性 当需要基于某些条件或状态变化而更新背景图片时,可以通过将这些变量作为响应式的数据项声明在组件选项中的 data 函数里面。之后,在模板部分利用 v-bind 指令(缩写为冒号 `:`),把要应用样式的对象传递给 style 属性[^1]: ```html <template> <div :style="dynamicBackground"> <!-- 内容 --> </div> </template> <script> export default { name: 'DynamicBackgroundComponent', data() { return { imageUrl: '' } }, computed: { dynamicBackground() { return { 'background-image': `url(${this.imageUrl})`, 'background-size': 'cover', 'background-position': 'center' }; } } } </script> ``` 此代码片段展示了如何创建一个名为 `imageUrl` 的可变字符串用于存储图像 URL 地址,并将其赋值给了由计算属性返回的对象内的 `'background-image'` 键名下。每当 `imageUrl` 发生变动时,都会触发重新渲染并自动刷新视图上对应的背景图案。 对于 Nuxt.js 用户来说,如果希望从 props 接收尺寸参数以构建自适应布局,则可以在 div 上添加更多样式规则[^2]: ```html <div class="box" :style="{width: width, height: height, backgroundColor: backgroundColor}"> <!-- ... --> </div> ``` 另外值得注意的是,在处理本地静态资源文件夹下的图片链接时,应当采用 require 方法加载相对路径下的素材,从而确保打包工具能够正确解析依赖关系[^3]: ```javascript // 假设 images 文件夹位于 src 目录之下 data () { return { localImageUrl: require('@/assets/images/example.jpg') } } ``` 最后一点建议是尽可能使用绝对路径而非相对路径指定远程服务器端托管的媒体资料位置,因为这有助于避免因环境差异引起的问题[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值