vue-cli build, vite build 生产部署刷新或弹窗404,页面空白修复方法

1、问题描述

vue前端生产部署后,当我们使用history模式进入页面路由后,刷新浏览器,或者输入页面路由或者弹窗会出现404 not found错误。例如我这里访问数据大屏的项目列表,就会报错如下图:

打开控制台报错如下图:

2、原因分析

这里存在两种情况:

1)应用是直接作为部署在nginx的根目录比如/var/www/html中(这种较少).

2)应用作为二级目录部署在nginx的根目录比如/var/www/html/big中(这种较常见).

一般情况下nginx 默认配置如下:

复制代码
        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ $uri/index.html $uri/ =404;
        }

当nginx 收到、project/items这个请求时会去root配置路径/var/www/html中找project目录,然后查找该目录下是否有items这个文件,这肯定是找不到的,所以就报了个404错误。

3、解决方案

对应情况1),只需要去掉 try_files 末尾的 $uri/ =404

配置如下

复制代码
        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ $uri/index.html ;
        }

对应情况 2),建议新增代理,让找不到的页面都去访问index.html

配置如下:

复制代码
        location /big/ {                                                                                                
               try_files $uri $uri/ $uri/index.html /big/index.html;  #router = history                                 
        }   

这种情况建议最好去掉 location / ,容易被拦截了报500错误。

这种情况建议最好去掉 location / ,容易被拦截了报500错误。

这种情况建议最好去掉 location / ,容易被拦截了报500错误。
============= 相关博文 ============

vite build 发布到nginx二级目录

Ruoyi-vue-pro Vue + nginx 二级目录部署到云服务器​​​​​​​

ruoyi-vue-pro数据大屏------路由支持history,告别难看的hash路由

============= 相关博文 ============

相关推荐
沐土Arvin2 小时前
港澳台行政区域json
前端
程序员鱼皮3 小时前
我花 300 块,让 Claude Fable 5 开发桌面 APP,值么?
前端
William_Xu3 小时前
JavaScript 并发控制
前端
拾年2753 小时前
从零手写 Ajax:用原生 XHR 搭建前后端交互全流程
前端·javascript·ajax
光影少年3 小时前
懒加载与分包:React.lazy + Suspense
前端·react.js·掘金·金石计划
拉勾科研工作室3 小时前
区块链工程毕业论文题目【249个】
开发语言·javascript
小林ixn3 小时前
你以为你懂 + 号?看完这篇 Bun + TS 实战,才发现以前全写错了
前端·javascript·typescript
namexingyun4 小时前
开源前端生态如何成为 AI UI 生成的“燃料“:shadcn/ui、Tailwind CSS、Storybook 技术价值全解剖
java·前端·人工智能·python·ui·开源·ai编程
Zyed4 小时前
[STM32]Day15读写FLASH+读取ID
前端·stm32·性能优化
jvxiao5 小时前
你真的懂作用域吗?从编译原理角度深度 JS 的作用域
前端·javascript