解决vue打包后静态资源路径错误的问题
vue项⽬完成的最后⼀步就是打包部署上线,但是打包部署的过程往往不是那么⼀帆风顺的,现将遇到问题和解决⽅案记录如下。
图⽚路径问题
起因:
页⾯中引⼊资源的⽅式往往有如下⼏种邓紫棋出场费多少钱
* HTML标签中直接引⼊图⽚, 如 <img src="../assets/images/index.png">
* JS代码中定义资源路径属性,如src: require('../assets/images/index.png')
* CSS代码中定义资源为背景图⽚,如background-image: url("../assets/images/indexpng")
上述三种资源加载⽅式还是有所区别的。
前两种⽆论图⽚⼤⼩,都会使⽤url-loader加载器将其转化为base64编码的静态资源,⽽第三种⽅式则会根据webpack中配置的limit参数,动态选择符合⼤⼩要求的图⽚进⾏转码,此时则会导致不符合⼤⼩选
择的图⽚加载失败,同时报出如下错
误。localhost:8080/dist/static/css/static/img/index.254207f.png
解决:
1.保证打包资源路径可⽤,⾸先要做的是配置build.js执⾏时的资源参数,打开config⽬录下的index.js
看代码:
index: solve(__dirname,'../dist/index.html'),
assetsRoot: solve(__dirname,'../dist'),
assetsSubDirectory:'static',
assetsPublicPath:'./',// 修改为'./'满⾜资源相对路径
手机为什么不能上网2.保证资源转码条件符合。这块主要涉及到加载⽤到的加载器url-loader, 需要保证其配置可执⾏。打开build⽬录下的
f.js
看代码:
三寸天堂歌词{
test:/\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader:'url-loader',
options:{
limit:10000,// 该限制为⼩于10KB的图⽚,系统默认转码为base64
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
依赖资源路径问题(字体、图标)
起因:
系统采⽤vue + elementUI,但是发现打包之后的字体⽂件和图标都不能正常显⽰,报错如下:
盆栽哥
解决:
周立波的女儿
打开build⽬录下utils.js,添加路径配置 publicPath: '../../',
看代码:
// Extract CSS when that option is specified
// (which is the case during production build)
act){
act({
use: loaders,
fallback:'vue-style-loader',
publicPath:'../../'// 解决element UI打包后字体⽂件丢失})
}else{
return['vue-style-loader'].concat(loaders)苏醒和李炜大打出手
}
}
以上内容,全为个⼈拙见,如有错误,还望指正。