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

Vite+React项目中React Router匹配/#about路径失败求助

解决React Router Dom匹配不到"/#about"路由的问题

问题原因

控制台提示no routes matched location "/#about",核心矛盾是路由模式与导航方式不匹配:

  • 你使用的BrowserRouter(历史模式)不识别带#的哈希路径
  • 导航时大概率用了普通锚点链接(如<a href="#about">),而非React Router专属的路由跳转组件

解决方案

方案1:改用React Router的Link组件(推荐)

在NavBar组件中,将跳转About的普通<a>标签替换为react-router-dom提供的Link组件,它会处理前端路由跳转,不会触发浏览器的哈希锚点行为:

// NavBar.jsx 示例代码
import { Link } from 'react-router-dom';

function NavBar() {
  return (
    <nav>
      {/* 替换原有的 <a href="#about">About</a> */}
      <Link to="/about">About</Link>
    </nav>
  );
}

方案2:切换为HashRouter(仅适用于部署环境限制场景)

如果你的部署环境(如静态页面托管)要求必须使用哈希路由,可将BrowserRouter替换为HashRouter,此时路由会自动适配/#前缀,无需修改路径配置:

// App.jsx 中修改Router导入与使用
import { HashRouter as Router, Routes, Route } from "react-router-dom";

function App() {
  // ...其他代码
  return (
    <>
      <Router>
        <NavBar />
        <Routes>
          <Route path="/about" element={<About />}></Route>
        </Routes>
      </Router>
    </>
  );
}

额外检查项

  • 确认导航链接没有使用href="#about"这类锚点格式,这类链接只会跳转到页面内锚点,不会触发React Router的路由切换
  • 若Vite配置了base路径,需确保路由路径与base保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:20:42