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
相关产品推荐
相关产品推荐

