reactjs - 反应路由器在实时站点上的某些页面上不起作用
问题描述
我的所有链接都可以正常运行,npm start
但是当我运行npm run build
某些页面的路线时,它们会停止工作。/about
根本不起作用,如果您在 404 页面上并向后导航,该/projects
页面也会停止工作。
解决方案
您应该使用将所有组件BrowserRouter
包装Routes
在组件中,并按如下方式渲染组件。Nav
Link
About
欲了解更多信息:https ://reactrouter.com/web/guides/quick-start
import "./nav.css";
import {
BrowserRouter as Router,
Route,
Link,
Redirect,
} from "react-router-dom";
import LogoS from "../imgs/logo-sm.png";
import Logo1 from "../imgs/logo-01.png";
import Projects from "./project-list";
import Aub from "./projects/auburn";
import M3d from "./projects/m3d";
import Uroute from "./projects/uroute";
import Thesis from "./projects/thesis";
import About from "./about";
import ACNH from "./projects/acnh";
const Nav = () => {
return (
<Router>
<div>
<header className="navbar">
<div className="container">
<Link to="/projects">
<p className="mb-0 navbar-brand">
<img
alt="Trisha Dring"
className="image logo d-sm-none"
src={LogoS}
/>
<img
className="image logo d-none d-sm-block"
alt="Trisha Dring"
src={Logo1}
/>
</p>
</Link>
<ul className="nav">
<li className="nav-item">
<Link
to="/about"
className="nav-link active"
aria-current="page"
>
About
</Link>
</li>
<li className="nav-item">
<a className="nav-link" href="/">
Resume
</a>
</li>
<li className="nav-item">
<a
className="nav-link"
href="mailto:trisha.dring+website@gmail.com"
>
Contact
</a>
</li>
</ul>
</div>
</header>
<Route path="/projects" component={Projects} />
<Route path="/ACNH" component={ACNH} />
<Route path="/Auburn" component={Aub} />
<Route path="/about" component={About} />
<Route path="/M3D" component={M3d} />
<Route path="/Uroute" component={Uroute} />
<Route path="/FixHFA" component={Thesis} />
<Route exact path="/">
<Redirect to="/projects" />
</Route>
</div>
</Router>
);
};
export default Nav;
顺便说一句,在您的About
组件中,使用className
而不是class
如下。否则,它会给出警告。
<p className="explain">Hi. I'm Trisha</p>
推荐阅读
- javascript - 如何使用 Javascript 检测“屏幕截图”
- docker - Flask url_for 由 docker 运行时生成 http 而不是 https
- c++ - 如何正确使用 OpenH264 使用代码示例进行编码?
- node.js - Socket.io 的函数 socket.on 只被调用一次
- powershell - Powershell 中的数据集变量
- javascript - 如何在 Typescript 中检查字符串是否为数字/浮点数?
- angular - 使用 ngFor 生成表 - Angular 5
- java - 设备重启时重启服务
- javascript - How does the spread syntax affect array splice
- ios - 不同屏幕的图像尺寸