部署前端刷新页面出现404问题

本文介绍了解决Web前端部署在Tomcat和Nginx环境下出现404错误的方法。对于Tomcat环境,通过创建并配置web.xml文件来重定向404错误到首页;对于Nginx环境,则是在nginx.conf中加入特定配置实现错误页的重定向。

问题1:web前端部署在tomcat下,登录进入后刷新页面出现404

解决办法:项目下创建WEB-INF/web.xml。

 web.xml内容


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
  <error-page>
  <error-code>404</error-code>
  <location>/index.html</location>
  </error-page>

</web-app>

问题2: 部署在Nginx下,指令页面访问404

解决办法:编辑Nginx配置文件,nginx/conf/nginx.conf,加入红色加粗部分。

重启服务,进入nginx/sbin目录下,执行 ./nginx -s reload

listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
 

### 宝塔面板前端项目配置伪静态规则以解决刷新页面404问题 在宝塔面板中部署前端项目时,如果使用 Vue 或 React 等基于单页应用(SPA)的技术栈,并且路由模式设置为 `history` 模式,则可能会遇到刷新页面时报 404 错误的情况。这是因为服务器未正确处理 SPA 路由请求,而是将其视为实际路径请求。 #### 解决方案概述 为了使前端项目能够正常运行并避免刷新页面时出现 404 错误,可以通过调整 Nginx 配置来实现。具体方法如下: --- #### 步骤一:编辑 Nginx 配置文件 进入宝塔面板的网站管理界面,选择对应的站点,点击 **“设置” -> “配置文件”** 进入 Nginx 配置区域。在配置文件中添加以下内容[^3]: ```nginx location / { try_files $uri $uri/ /index.html; } ``` 此配置的作用是告诉 Nginx 将所有未匹配到实际文件或目录的请求重定向至 `index.html` 文件,从而让前端框架接管这些请求并解析成正确的路由。 --- #### 步骤二:保存并重启 Nginx 完成上述配置后,记得保存更改并点击 **“重新加载 Nginx”** 按钮以使新配置生效。此时,即使用户刷新页面或访问深层链接,也不会再触发 404 错误。 --- #### 步骤三:验证配置效果 打开浏览器访问已部署前端项目,尝试刷新任意子页面或直接输入 URL 地址进行测试。如果一切正常,应该不会再看到 Nginx 默认的 404 页面,而会显示项目自定义的内容。 --- #### 注意事项 1. 如果仍然存在权限问题(如 403 Forbidden),需确认 Nginx 用户是否有权访问项目根目录下的文件。可以在 Nginx 配置中指定用户身份,例如: ```nginx user root; # 修改为root用户, 不修改的话可能页面会出现403 forbidden; ``` 同时确保项目文件夹具有适当的读取权限[^5]。 2. 对于 Apache 环境下部署的 Vue 项目,同样需要配置 `.htaccess` 文件以支持历史路由模式。典型配置如下[^4]: ```apache <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule> ``` --- #### 总结 通过合理配置 Nginx 的 `try_files` 指令或其他服务器的相关规则,可以有效解决前端项目在刷新页面时产生的 404 错误问题。这不仅适用于 Vue.js 项目,也同样适合其他采用类似架构的应用程序。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值