博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue项目部署遇到的坑(你肯定会遇到!)
阅读量:7232 次
发布时间:2019-06-29

本文共 1499 字,大约阅读时间需要 4 分钟。

#部署非ROOT环境下组件CSS中 background-img图片问题

总所周知后台部署代码的时候,是直接把我们通过npm run build(vue-cli生成项目) 的代码直接放到ROOT目录的,即使你放到其他目录我们通过config文件build对象下面的

assetsPublicPath: '/clinet', // If you are deployed on the root path, please use '/' 打包访问资源目录

来配置,这样在index.html中静态资源是没问题的,但是如果你在.vue文件中像这样使用背景图

.back-img{    position: relative;    width:1273px;    height: 665px;    margin:0 auto;    background:url(/static/imgs/bj.png) no-repeat; //这样    background-size:100% 100%  }复制代码

打包出来的的背景图依然是 background:url(/static/imgs/bj.png) no-repeat; 因为vue-loader根本就不会处理它,但实际能访问到图片的路径应该是background:url(/clinet/static/imgs/bj.png) no-repeat;。最蛋疼是我们把图片都放到了static目录里面,如果要换的要疯掉。没办法只能想办法。。。

##:把图片先上传到云服务器,然后统一使用服务器地址访问,但是也要一个一个修改。。。放弃

##方法二:不用背景图,换img,虽然少了请求,但是loader会把img转成base64增加打包代码体量。。。放弃

##方法三:自己写loader处理配置。。。今天要说的 百度一下很多介绍,这里就不多说了。loader实际上是字符串的处理,所以特别好理解 首先配置loader参数

{        test: /\.vue$/,        loader:'background-loader',        options:{           assetsPublicPath:"/clinet" //和assetsPublicPath 保存一致         }     }      复制代码

下面是loader核心代码

var loaderUtils = require("loader-utils");var path = require("path");module.exports = function(source){	var _this = this;	//获取到.vue文件,查找是否包含style标签,读取配置项 assetsPublicPath 默认为 '/'	if(process.env.NODE_ENV === 'production'){//生产环境才转码		const options = loaderUtils.getOptions(this);		let reg = /url\((.*)\)/g;		return source.replace(reg,`url(${options.assetsPublicPath}$1)`);	}	return source}复制代码

这样就解决了上面的问题,学习loader的写法,有助于更加了解webpack,对新人会有帮助,下一次分享,我将给小伙伴分享插件的写法,希望对小伙伴门有帮助,文笔不好,喷子远离!谢谢。

转载地址:http://ukjfm.baihongyu.com/

你可能感兴趣的文章
mongodb 安装
查看>>
ubuntu bless 16字节每行
查看>>
TestNG 七 annotation
查看>>
mysql数据库管理工具(navicat for mysql)
查看>>
JVM基础(1)——内存模型
查看>>
程序员嘛,先做个好架构师再说
查看>>
用外挂只为“吃鸡”成功?为什么不试试正当手段!
查看>>
2017线上超市食品消费盘点:老字号成新网红 年轻人爱新奇特
查看>>
BATJ等公司必问的8道Java经典面试题,你都会了吗?
查看>>
开学季学生宿舍竟然限电,学校管理因噎废食?
查看>>
同样是异形屏,为什么OPPO R15能够打造不一样的体验?
查看>>
奇点汽车回应欠薪3月传闻:多轮融资顺利 不存在资金问题
查看>>
孕妇高速上产女 交警医生合力架起生命绿色通道
查看>>
西藏尼阿底遗址项目获“2018年中国考古新发现”入围奖
查看>>
2018年浙江检察机关办理公益诉讼案件5551件
查看>>
加拿大渥太华民众寒冬享受运河滑冰道乐趣
查看>>
火箭队再遭伤病打击 曝中锋卡佩拉至少缺阵1月
查看>>
和妈妈在一起,就是团圆
查看>>
程序员面试,写个javascript物理引擎,张口要月薪20K!面试官真给了!
查看>>
UAS-点评侧用户行为检索系统
查看>>