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 相关文章推荐
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
js 动态为textbox添加下拉框数据源的方法
Apr 24 Javascript
对 jQuery 中 data 方法的误解分析
Jun 18 Javascript
document.forms用法示例介绍
Jun 26 Javascript
JavaScript插件化开发教程 (三)
Jan 27 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
Aug 27 Javascript
AngularJs Javascript MVC 框架
Jun 20 Javascript
JavaScript表单验证开发
Nov 23 Javascript
seajs中最常用的7个功能、配置示例
Oct 10 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
Jun 26 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
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
python3编写C/S网络程序实例教程
2014/08/25 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
学习教师法的心得体会
2014/09/03 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
初中班主任教育随笔
2015/08/15 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL