vue css 引入asstes中的图片无法显示的四种解决方法


Posted in Javascript onMarch 16, 2020

这里主要针对的是vuecli2中的一些问题。
vue项目中,常常会有很多的图片资源,这样的资源存放位置,通常我们有两个选择:1. static,2. assets
关于这两者之间的区别,和如何选择这里就不多说了!
这里我们来说说assets目录下存放图片时,在vue组件的css样式中引入图片时将会遇到的一些问题!
正常情况,我们在本地开发调试的时候,无论什么样的方式引入图片都不会有问题。但是,一大包发布打线上,就会出现图片无法加载的情况!
这是因为,出于某些原因,有人修改了config目录下的index.js文件中的build对象中assetsPublicPath的值,这个值初始化的时候是 斜杆(/),代表资源根目录,也就是dist目录下与index.html文件同级。

所以:

第一种方法

修复的方法就是把这个值改回默认值:/

vue css 引入asstes中的图片无法显示的四种解决方法

打包出来的结果: css文件中background属性

vue css 引入asstes中的图片无法显示的四种解决方法

index.html中的js和css文件

vue css 引入asstes中的图片无法显示的四种解决方法

第二种方法

还是修改这个值斜杠代表的是根目录,我们换种思路,是不是可以把这里该为绝对地址呢?答案肯定是可以的具体怎么改呢?举个例子,比如我的线上的项目的地址是:http://www.test.com,我们只需要吧之前的斜杠替换成这个地址就可以了,如图:

vue css 引入asstes中的图片无法显示的四种解决方法

打包出来的结果: css文件中background属性

vue css 引入asstes中的图片无法显示的四种解决方法

index.html中的js和css文件

vue css 引入asstes中的图片无法显示的四种解决方法

第三种方法

上面也说了,可能由于某些原因我们修改了这个值,为了不影响原有的功能,也是避免造成别新的bug,我们不能修改这个值,所以我们有了第三种方法。修改build目录中的uitls文件中的css打包配置,打开utils.js文件直接搜索 ExtractTextPlugin.extract 然后在对象中添加属性 publicPath: ‘…/…/' 具体如图:

vue css 引入asstes中的图片无法显示的四种解决方法

这里的层级(publicPath: ‘…/…/' )具体看你打包后的目录结构,我这里的层级如下图,各自根据自己的情况确定

vue css 引入asstes中的图片无法显示的四种解决方法

这个时候打包出来的路径,根据你的assetsPublicPath配置而定了,这里就不举例了,执行查看是否打包正常。

第四种方法

前面三种方案都是说的老项目,已经大量的图片引入,没有办法了。但是若果图片资源不多,或者是新项目,这个时候的话不需要这么麻烦去改打包配置。我们可以从一开始就避免这个问题。对于html中的img标签我们可以通过import的方式先把图片引入,然后放到data中,在绑定到src上。

import logo from "../assets/logo.png";
data() {
 return {
 logo,
 };
},
<img :src="logo" width="78" height="78" alt="logo">

css中的路径我们可以通过@来引入(@等价于src目录)比如:

background: url("@/assets/logo.png") no-repeat;

又或者,直接不要放到asstes目录下,也可以避免这个问题发生。

总结

到此这篇关于vue css 引入asstes中的图片无法显示的四种解决方法的文章就介绍到这了,更多相关vue css 引入asstes 图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
jquery简单的拖动效果实现原理及示例
Jul 26 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
详解Angular的数据显示优化处理
Dec 26 Javascript
深入理解Vue transition源码分析
Jul 30 Javascript
微信小程序 POST请求的实例详解
Sep 29 Javascript
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
Vue.set()动态的新增与修改数据,触发视图更新的方法
Sep 15 Javascript
ES6 let和const定义变量与常量的应用实例分析
Jun 27 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
Sep 21 Javascript
JS函数本身的作用域实例分析
Mar 16 #Javascript
JavaScript实现tab栏切换效果
Mar 16 #Javascript
vue-cli3使用mock数据的方法分析
Mar 16 #Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
Mar 16 #Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 #Javascript
JavaScript实现动态留言板
Mar 16 #Javascript
vue中的双向数据绑定原理与常见操作技巧详解
Mar 16 #Javascript
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
php连接mysql数据库代码
2009/03/10 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
python装饰器与递归算法详解
2016/02/18 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
投资意向书范本
2014/04/01 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
课内比教学心得体会
2014/09/09 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js