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 相关文章推荐
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
Angular4学习教程之HTML属性绑定的方法
Jan 04 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
JavaScript随机数的组合问题案例分析
May 16 Javascript
iview实现图片上传功能
Jun 29 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
Sep 11 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 SQL防注入代码集合
2008/04/25 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
DNA测试:Orig3n
2019/03/01 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
优秀毕业生推荐信
2013/11/02 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
南京导游词
2015/02/03 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
python实现剪贴板的操作
2021/07/01 Python
JavaScript设计模式之原型模式详情
2022/06/21 Javascript