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

配置Vite base后React路由无法匹配的问题排查

问题原因与解决方案

当你在Vite中设置base: '/tools/evidence'后,应用的基础路径变为/tools/evidence,但React Router的BrowserRouter未同步配置该基础路径,导致路由解析逻辑不匹配:

  • Vite将http://localhost:5173/tools/evidence视为应用根路径
  • 但BrowserRouter默认从URL根路径(/)开始匹配路由,此时页面的location.pathname是/tools/evidence,而你的index路由匹配的是/,自然找不到对应路由,最终触发NotFound组件

解决步骤

修改BrowserRouter组件,添加basename属性,值与Vite配置中的base保持一致:

// ... 其他代码不变
<BrowserRouter basename="/tools/evidence">
  <Routes>
    <Route index element={<div>Home</div>} />
    <Route
      path="/topics/*"
      element={
        <>
          <EditorRoutes />
          <PrintRoutes />
        </>
      }
    />
    <Route path="/feedback" element={<FeedbackPage />} />
    <Route path="/accessibility" element={<Accessibility />} />
    <Route path="/cookies" element={<Cookies />} />
    <Route path="/algorithms" element={<Algorithms />} />
    <Route path="/privacy" element={<Privacy />} />
    <Route path="*" element={<NotFound />} />
  </Routes>
</BrowserRouter>
// ... 其他代码不变

原理说明

设置basename后,React Router会自动将所有路由路径拼接在该基础路径之后:

  • 原index路由(匹配/)会对应实际URL的/tools/evidence
  • 原/feedback路由会对应实际URL的/tools/evidence/feedback

此时Vite的基础路径配置与React Router的路由解析逻辑完全匹配,访问http://localhost:5173/tools/evidence即可正常渲染Home组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:42:45