You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Router Dom相对路径配置异常,刷新页面报Cannot GET错误求助

问题分析与解决方案

核心问题

Nginx配置中try_files的最后一个参数路径错误,当刷新子路由(如/manager/games/123)时,Nginx尝试重定向到根目录的/index.html,但你的React应用入口文件实际在/manager/路径下,导致找不到文件报错。

修正步骤

1. 调整Nginx的try_files配置

将原来的try_files $uri $uri/ /index.html;修改为try_files $uri $uri/ /manager/index.html;,确保重定向指向正确的应用入口文件。

完整的Nginx location配置示例:

location /manager/ {
    alias /path/to/your/react/build/;
    try_files $uri $uri/ /manager/index.html;
    # 保留你原有的基础认证配置
    auth_basic "Restricted Area";
    auth_basic_user_file /path/to/.htpasswd;
}

2. 验证现有React配置(无需修改)

  • BrowserRouter的basename="/manager"设置正确,确保路由基准路径与服务器路径匹配
  • package.json的homepage="."设置正确,保证静态资源以相对路径加载

3. 重启Nginx服务

修改配置后执行命令使设置生效:

sudo systemctl restart nginx

原理说明

刷新子路由时,浏览器直接向Nginx请求/manager/games/123这类路径,Nginx在alias指向的构建目录中找不到对应文件,此时try_files会将请求重定向到指定的入口文件。原配置指向根目录的/index.html,而实际入口在/manager/index.html,修正后就能正确加载React应用,由React Router处理子路由逻辑。

内容的提问来源于stack exchange,提问作者masoud khanlo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:00:47