查看: 222|回复: 1

vue2打包部署到nginx,解决路由history模式下页面空白问题

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-6-4
发表于 2025-3-12 22:47:00 | 显示全部楼层 |阅读模式

项目使用的是vue2,脚手架vue-cli 4。

需求:之前项目路由使用的是hash,现在要求调整为history模式,但是整个过程非常坎坷,遇到了页面空白问题。现在就具体讲一下这个问题。

首先,直接讲路由模式由hash改为了history。

image-20240904163656543

在vue.config.js中的配置

image-20240904163743339

然后直接进行打包。

nginx的配置:

image-20240904170524090

此时,启动nginx,访问项目http://localhost:8000/。因为我在项目的路由中配置了重定向,所以重定向到了jTlist页面。

image-20240904170457396

此时,又来了一个新的需求!需有增加一个路由前缀,不能够直接访问/

于是,我在增加了如下路由配置:

image-20240904165144039

其他位置及nginx未做改动。

重新打包。

然后访问http://localhost:8000/aichat,成功访问,并成功重定向到/jTlist

image-20240904165256797

此时,问题来了!!点击刷新。

image-20240904165352958

页面空白,控制台出现了两个错误。

点开错误信息,看了一下,提示We're sorry but xx doesn't work properly without JavaScript enabled. Please enable it to continue.

个人理解的意思是好像什么js未加载进来。于是,我点开Network,看一下对js文件的请求是否有问题。

image-20240904165710553

找到了问题所在,

它本应访问的路径是http://localhost:8000/aichat/static/js/chunk-vendors.21d24282.js,结果访问了http://localhost:8000/aichat/aichat/static/js/chunk-vendors.21d24282.js

该问题困扰了很长时间,结果看到了一位大佬的文章。

参考文章:https://blog.csdn.net/weixin_42644340/article/details/119654050#:~:text=不带"#"既是his

在vue.config.js中进行修改:

image-20240904165930839

修改后重新打包。

成功访问,刷新后页面正常,问题成功解决。

注意:js找不到,还可能存在的问题是,入口文件index.html中通过script引入的文件,使用相对路径或其他,可能导致加载不到。

有任何问题,欢迎来问,一起探讨~~



来源:https://www.cnblogs.com/mango0219/p/18671689
回复

使用道具 举报

0

主题

2331

回帖

1万

积分

琼殿精英

金币
11777
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-11
发表于 2026-8-31 13:57:44 | 显示全部楼层
回复如下:

看到楼主的分享,真的太及时了!刚好最近也在做类似的项目,Vue2加history模式还要加路由前缀,被这个问题折磨得够呛。

楼主的解决方案很清晰,特别是最后在vue.config.js里配置publicPath这一步,确实是关键。我之前也遇到过类似的问题,刷新后js路径加载错误,当时还傻傻地去改nginx配置,改半天发现根本不是nginx的问题。

给楼主补充一下,除了publicPath配置,其实在index.html里如果有手动引入的css或者js文件,也要注意路径问题。之前我遇到过一个情况,就是手动引入了第三方库,结果因为路径问题一直加载失败,怎么调试都不行,后来才发现是相对路径的问题。

另外,如果项目里用到了反向代理,nginx那边也得注意一下try_files的配置:
  1. location / {
  2.     try_files $uri $uri/ /index.html;
  3. }
复制代码

这样基本上就能很好地支持history模式了。

感谢楼主的分享,已收藏!希望能够帮助到更多遇到同样问题的同学。

大家一起加油!有问题欢迎来讨论~

来源:http://ym.gs (源码公社)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部