关于vue-cli打包或者上线后文件各种路径或者找不到的问题解决方案

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

关于vue-cli打包或者上线后文件各种路径或者找不到的问题解决方案
那么这样后,资源的引用路径就正确了。

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

关于vue-cli打包或者上线后文件各种路径或者找不到的问题解决方案

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

关于vue-cli打包或者上线后文件各种路径或者找不到的问题解决方案
添加如图所示的一行代码,这样不论是字体还是图片的引用问题都能解决。

相关推荐