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

React+Vite路由配置报错:URL后出现src/main.jsx导致404

问题解决:React + Vite嵌套路由/带参路由出现404(URL自动追加src/main.jsx)

核心原因

问题本质是资源引入路径使用相对路径导致的。当访问嵌套路由(如/user/panel)或带参数路由时,浏览器会把当前路由路径作为基础路径,去请求src/main.jsx,最终变成http://localhost:5173/user/src/main.jsx——这个路径不存在,所以返回404。

解决方案

1. 修正index.html中的资源引入路径

打开项目根目录下的index.html,找到引入main.jsx的script标签,把相对路径改成绝对路径(开头加/):

<!-- 原错误写法 -->
<script type="module" src="src/main.jsx"></script>

<!-- 修改后正确写法 -->
<script type="module" src="/src/main.jsx"></script>

这样不管当前路由是什么,浏览器都会从根路径http://localhost:5173/请求src/main.jsx,不会再出现路径错误。

2. 移除React Router v6中无用的exact属性

React Router v6默认采用精确匹配规则,exact属性已被废弃,保留它不会报错但完全冗余。可以统一删除所有<Route>标签上的exact属性,让路由配置更简洁:

<Router>
  <Routes>
    <Route path="/" element={<Welcome />} />   
    <Route path="/Home" element={<Home />} />
    <Route path="/login" element={<Login />} />
    <Route path="/signup" element={<Signup />} />
    <Route path="/products" element={<Products />} />
    <Route element={<RestrictedRoute loggedIn={isLoggedIn} />}>
      <Route path="/8653-admin-2318" element={<Admin />} />
      <Route path="/admin-questions" element={<AdminQuestions />} />
      <Route path="/admin-users" element={<AdminUsers />} />
      <Route path="/admin-ministry" element={<Ministry />} />
      <Route path="/admin-organisation" element={<Organisation />} />
      <Route path="/admin-support" element={<Support />} />
      <Route path="/admin-algorithm" element={<Algorithm />} />
      <Route path="/admin-legislation-add" element={<LegislationAdd />} />
      <Route path="/admin-legislation-table" element={<LegislationTable />} />
      <Route path="/admin-kosul-table" element={<KosulTable />} />
      <Route path="/admin-sebep-table" element={<SebepTable />} />
      <Route path="/admin-sart-table" element={<SartTable />} />
      <Route path="/admin-algorithm-condition-table" element={<AlgorithmConditions />} />
    </Route>
    <Route path="/admin-login" element={<AdminLogin />} />
    <Route path="/forgot-password" element={<ForgotPassword />} />
    <Route path="/payment" element={<PayPage />} />
    <Route path="/user/panel" element={<UserPanel/>} />
    <Route path="/update-password/:tokenId/:userId" element={<UpdatePassword />}/>
  </Routes>
</Router>

3. 验证修复效果

修改后重启Vite开发服务器,再次访问/user/panel或带参数路由/update-password/xxx/xxx,页面应该能正常加载,不会再出现404错误。


内容的提问来源于stack exchange,提问作者Omar Dak Elbab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:33:32