在nginx部署vue项目时,谷歌浏览器能正常加载,火狐报css加载失败
在看publicPath配置时,publicPath: process.env.NODE_ENV === “production” ? “./” : “/”,
把’./'改成了绝对路径,然后重新打包发现问题解决了。但是不知道为什么解决了,于是又去查了一些资料。
一、含义
‘./’表示相对路径,表示当前目录下的
‘/’表示绝对路径,表示根目录下的。
二、build后
正式环境:打包后的类似
测试环境:script type=“text/javascript” src="/static/js/index.js">
三、配置
不推荐:publicPath: process.env.NODE_ENV === “production” ? “./” : “/”,
推荐:publicPath:‘/aaa/’
原因:一般部署到服务器后,一个域名下面会有很多应用,所以一般每个应用会有一个前缀,比如/aaa/,然后nginx配置,指向服务器某个地址。如果用‘./’也可以实现,因为是相对路径,所以静态资源的访问是域名+nginx+打包后的地址,但是对于本地,如果是相对路径,因为启动是localhost:8080,所以首页取静态资源是‘localhost:8080/static’这种,但是具体页面因为router配置了base:’/aaa’,所以静态资源是‘’localhost:8080/aaa/static‘’,两个前缀不同,肯定有一个取不到。
原文链接:https://blog.csdn.net/qq_42440919/article/details/121922723
不同版本修改publicPath的方法
- vue-cli 2.x版本
在config文件夹下的index.js中修改 assetsPublicPath: ‘./’ - vue-cli 3.x版本
在 cli3 中 assetsPublicPath 属性被 baseUrl 取代,只需要在vue.config.js 添加baseUrl 属性 设为 ‘./’ 即可 - vue-cli 4.x版本
与cli3相同都是修改 vue.config.js 文件 ,但将属性换为 publicPath:’./’
原文链接:https://www.cnblogs.com/dreamstartplace/p/12922224.html