vue静态资源打包中的坑与解决方案

1、问题
vue 经过 npm run build 打包后生成的css文件引入的静态文件(我的项目中是引入了字体文件)路径错误问题。

2、分析
查看项目中字体文件的引入路径为http://192.168.120.37/lx_form/static/css/static/fonts/element-icons.535877f.woff
而项目中的资源路径如下

index.html
static/
 |--js/
  |--*.js
 |--css/
  |--*.css
 |--fonts/
  |--*.woff
  |--*.ttf

对比项目中的资源路径,很明显字体文件引入的路径有误,分析后可以知道,字体文件的引入路径多了两层"/static/css"的目录。

因为打包配置的assetsPublicPath是"./",即静态资源使用的是相对路径,所以css目录下的css文件引入的字体文件的路径应该为相对于项目根目录的static/fonts/element-icons.535877f.woff,经查看,确实如此。

那么css文件路径有问题,猜测是打包过程中资源路径没有配置好,分析打包过程,css是在js中引入的或是写在.vue文件中的,css文件首先被less,postcss等css预处理器处理,处理后被ExtractTextPlugin插件处理,ExtractTextPlugin插件将js中或.vue文件中的css全部抽离至app.css文件中。

因为字体文件的引入路径多了两层"/static/css"的目录,所以在抽离app.css文件时,css文件中引用的路径是相对于app.css目录的static/fonts/element-icons

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值