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路由

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

相关推荐
iCxhust38 分钟前
模型:500kW飞轮 10kV输电线路 油田抽油机 同时考虑无功补偿 统计:全年节电量 结果56万度电
前端·css·css3·电力·飞轮
志尊宝1 小时前
AI原生前端开发(011):Chrome 148+内置Gemini Nano入门
前端·chrome·ai-native
Liu.7741 小时前
uniapp swiper 常见问题及修复
前端·uni-app
u0111026751 小时前
图片生成任务的日志记录与敏感信息取舍
前端·图像处理·算法·ai作画
Eastmount1 小时前
[论文阅读] (54)NDSS26 JSIMPLIFIER:动静态与LLM如何协同完成JavaScript解混淆?
javascript·论文阅读·恶意代码分析·智能体安全·ndss
凯凯姜1 小时前
Vue 3 深入学习笔记 16:API 请求封装与统一错误处理
vue.js·笔记·学习
梦想很大很大2 小时前
重新思考 Workrun:AI 时代,我们还需要手动编排 Workflow 吗?
前端·人工智能·后端
Ai-_Man2 小时前
ChatGPT还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·javascript·人工智能·chatgpt·小程序·ecmascript
小羊没烦恼!2 小时前
深入浅出SQL Server中的死锁
java·开发语言·前端·数据库·后端·spring·c#