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

React-Router-Dom V6仅生产环境跳转至/not-found问题咨询

生产环境SPA路由全部跳转到404的解决方案

问题场景

开发模式下路由运行正常,但部署项目构建产物到服务器后,所有路径均无法被正确识别,统一跳转至/not-found页面。相关路由代码如下:

<Routes>
  <Route
    path="/"
    element={
      <AuthGuard component={<Home />} />
    }
  />
  <Route
    path="/groups"
    element={
      <AuthGuard
        backgroundColor='darkRed'
        component={<Groups />}
      />
    }
  >
    <Route
      path=":groupId"
      element={<Groups />}
    />
  </Route>
  <Route
    path="/join-group/:groupCode"
    element={<JoinGroup />}
  />
  <Route
    path="/matches"
    element={
      <AuthGuard
        component={<Matches />}
      />
    }
  />
  <Route
    path="/see-more"
    element={
      <AuthGuard component={<SeeMore/>} />
    }
  />
  <Route
    path="/remote-login"
    element={<RemoteLogin />}
  />
  <Route
    path="/not-found"
    element={<NotFound />}
  />
  <Route
    path="*"
    element={<Navigate to="/not-found"/>}
  />
</Routes>

问题原因

这是单页应用(SPA)的典型服务器配置问题:
当直接访问/groups、/matches这类子路径时,服务器会尝试寻找对应的物理文件,但SPA只有一个入口文件(通常是index.html),找不到文件就会返回404状态码,触发前端路由的兜底规则path="*",最终跳转到/not-found。

解决办法

需要修改服务器配置,让所有请求都指向SPA的入口文件index.html,由前端路由处理路径匹配:

1. Nginx服务器

在Nginx的server配置块中添加以下规则:

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

2. Apache服务器

在项目根目录创建或修改.htaccess文件,添加Rewrite规则:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

3. 静态托管服务(Netlify/Vercel)

  • Netlify:在项目根目录创建_redirects文件,内容如下:
    /* /index.html 200
    
  • Vercel:在项目根目录创建vercel.json文件,内容如下:
    {
      "rewrites": [
        { "source": "/(.*)", "destination": "/index.html" }
      ]
    }
    

额外检查

确认前端路由使用的是BrowserRouter(React Router),而非HashRouter——HashRouter会在路径中添加#,虽能避免服务器配置问题,但不符合常规路由格式。

内容的提问来源于stack exchange,提问作者Maryam Alishahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:20:33