1

我们用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: './', 即可如图

clipboard.png
那么这样后,资源的引用路径就正确了。

当然在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引用图片的正常路径,即:

clipboard.png

那么就需要修改build文件夹下的utils.js代码,如图所示:

clipboard.png
添加如图所示的一行代码,这样不论是字体还是图片的引用问题都能解决。


曦沙飞舞
673 声望15 粉丝

爱前端,爱生活