在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的方法

  1. vue-cli 2.x版本
    在config文件夹下的index.js中修改 assetsPublicPath: ‘./’
  2. vue-cli 3.x版本
    在 cli3 中 assetsPublicPath 属性被 baseUrl 取代,只需要在vue.config.js 添加baseUrl 属性 设为 ‘./’ 即可
  3. vue-cli 4.x版本
    与cli3相同都是修改 vue.config.js 文件 ,但将属性换为 publicPath:’./’

原文链接:https://www.cnblogs.com/dreamstartplace/p/12922224.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐