我们用vue开发项目的时候npm run dev 用的很爽的
一旦 npm run build之后 或者上线之后
卧槽,我的什么css,img各种加载不了,实在让人头疼,查了很多资料,以下是我的解决方案
零 安装vue-cli
npm install -g vue-cli // 加-g是安装到全局vue init webpack demo //然后一路回车等待安装完毕
cnpm install //等安装完毕
一 配置别名
1 配置
build/webpack.base.conf.js
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'c': resolve('src/components'),
'img': resolve('src/assets/img'),
'css': resolve('src/assets/css')
}
2 用法
<img src="~img/logo.png" alt=""> //记得~
二 所有资源相对路径
打开webpack.prod.conf.js
找到output:增加 publicPath: './', 即可如图
那么这样后,资源的引用路径就正确了。
当然在config文件夹下的index.js中修改 assetsPublicPath: './'同样也可以达到资源的相对引用。
三 背景图片的引用问题
上面虽然解决了资源路径的引用问题,但是资源里面的背景图片,不像index.html中加载资源一样,通过./static/js/app.js引用可以正常加载,图片资源是通过css加载的,如 background: url("../../assets/images/logo-index.png") no-repeat;被相对打包后变成了url(static/img/logo-index.2f00bf2.png) no-repeat所以我们要保留css引用图片的正常路径,即:
那么就需要修改build文件夹下的utils.js代码,如图所示:
添加如图所示的一行代码,这样不论是字体还是图片的引用问题都能解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。