位置: IT常识 - 正文

vue踩坑--background-image路径问题(vue backbone)

编辑:rootadmin
vue踩坑--background-image路径问题         在前端开发中,background-image属性非常常见,有很多时候需要使用内联样式来绑定此属性,但是在vue项目中,如果如下面代码填写路径会找不到图片

推荐整理分享vue踩坑--background-image路径问题(vue backbone),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue backbone,vue beautify,vue background,vue backbone,vue background,vue backbone,vue backbone,vue踩坑记,内容如对您有帮助,希望把文章链接给更多的朋友!

        项目中图片都放在src/img文件夹,img和background-image引用都用相对路径,即../../../这种形式。在项目打包build设置路径assetsPublicPath:'./',然后哪些没有转成base64的背景图都失效了。

<script type="text/javascript">import TemplateNav from './TemplateNav'export default {name: 'FooterNav',components: {'TemplateNav': TemplateNav},data() {return {//使用相对路径会找不到图片shouye:'url(../../assets/images/shouye/index2x.png)',fenlei:'url(../../assets/images/shouye/fenlei2x.png)',search:'url(../../assets/images/shouye/search2x.png)',shopcart:'url(../../assets/images/shouye/gouwuche2x.png)',mine:'url(../../assets/images/shouye/I2x.png)'}},props: {num: {default: '0'}},}</script>

 报错如下:404(Not Found)

vue踩坑--background-image路径问题(vue backbone)

 正确的路径应该如下面这样

data() {return {shouye:'url(' + require('../../assets/images/shouye/index2x.png') + ')',fenlei:'url(' + require('../../assets/images/shouye/fenlei2x.png') + ')',search:'url(' + require('../../assets/images/shouye/search2x.png') + ')',shopcart:'url(' + require('../../assets/images/shouye/gouwuche2x.png') + ')',mine:'url(' + require('../../assets/images/shouye/I2x.png') + ')'}},

使用require()方法,require()是node.js方法。

结合实际情况,处理方法如下:

img标签:

<img :src="require('../../../assets/images/icons/icon-add-pc.svg')">

背景图:

<div :style="{backgroundImage:'url('+require('../../../assets/images/icon/icon-add-pc.svg')+')'}"></div>//i标签<i :style="{backgroundImage:'url('+require('../../assets/home/ic-0-01.svg')+')'}"></i> 扩展:图片格式(base64)

        图片的base64编码就是可以将一张图片数据编码成一串字符串,使用该字符串代替图像地址url。

使用base64图片的优点:减少http请求次数采用base64的图片随着页面一起下载,因此不会存在跨域请求的问题没有图片更新要上传图片,因此不会造成清理图片缓存的问题。使用base64图片的缺点:增加css文件的大小,比http请求大30%左右浏览器兼容性,支持ie10及以上解析css的时间增长base64图片与csssprites技术

        精灵图技术就是将图片合成一个大的图片,将多次图片请求合成一张大的请求,以此来达到减少http请求的次数。

对于base64图片常见误区

        base64虽然有优点,但是其缺点也很明显,在使用上存在一些明显的缺陷

使用base64不代表性能优化,使用base64减少了http请求,但是增加了css文件的体积,css文件体积增大意味着CPR的阻塞CPR(Critical Rendering Path,关键渲染路径):当浏览器从服务器接收到一个HTML页面的请求时,到屏幕上渲染出来要经过很多个步骤。浏览器完成这一系列的运行,或者说渲染出来我们常常称之为“关键渲染路径”。图片不会导致关键路径的阻塞,而转换为base64后大大增加了css文件的体积,css文件的体积直接影响渲染,导致空白屏幕时间增长,html和css会阻塞渲染,而图片不会阻塞渲染。

感谢分享:vue踩坑系列——backgroundImage路径问题_MoLvSHan的博客-CSDN博客_background-image 相对路径 感谢分享:vue项目中打包background背景路径问题 - 这个男人 - 博客园

本文链接地址:https://www.jiuchutong.com/zhishi/297267.html 转载请保留说明!

上一篇:PHP批量获取网页中所有固定种子链接的方法(php获取网站html代码)

下一篇:vue3.0中setup使用(两种用法)(vue set up)

  • 手机出现fastboot是怎么回事(手机出现fastboot怎么退出来)

  • 微博怎么查看登录邮箱(微博怎么查看登陆设备)

  • mate304g和5g手机壳通用吗(华为mate304g和5g的区别大不大)

  • 微信有魔音怎么取消(微信魔音怎么消除)

  • 淘宝退货没吊牌了咋办(淘宝退货没有吊牌)

  • OPPO手机悬浮窗怎么用(oppo手机悬浮窗设置在哪里)

  • 华为手机微信聊天记录怎么恢复(华为手机微信聊天怎么隐藏)

  • 百家号删除文章的影响(百家号删除文章对账号有影响吗)

  • 扫码没付款有记录吗(扫码没付钱)

  • 2g卡怎么升级4g(2g卡怎么升级4g网络)

  • 低电量模式伤害电池吗(低电量模式伤害CPU吗)

  • qq辅助资料验证不通过(QQ辅助资料验证失败怎么办)

  • oppoa9微信夜间模式怎么设置(oppo手机微信夜间模式)

  • 数据有效性如何设置男女(数据有效性如何设置三级下拉)

  • 苏宁易购退款多久到账(苏宁易购退款多久同意退款)

  • ps羽化值快捷键(ps羽化快捷键在哪里设置)

  • 神舟笔记本end键在哪(神舟笔记本fn快捷键大全)

  • 华为nova5耳机用法(华为nova5pro的耳机)

  • 求sinx的导数

  • 华为手环哪款能测血压(华为手环哪款能测血氧)

  • 华为手机有电子保卡吗(华为手机有电子三包凭证是不是就是真机)

  • ios12怎么看beatsx电量

  • 微信里的星标朋友是啥(微信里的星标朋友是什么意思)

  • Win7系统ps工具栏不见了的解决方法(ps工具栏失灵)

  • 基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)(基于Selenium的自动化测试平台设计与实现)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络