作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将哈希添加到react-router中的endopints中,以防止来自服务器的错误响应。我正在使用 python -m SimpleHTTPServer -p 8888 来创建服务器。
这个简短的示例有效,但是当我尝试在 /about
等某些路线上重新加载页面时,我收到错误:错误响应错误代码 404。消息:找不到文件。错误代码说明:404 = 没有任何内容与给定的 URI 匹配。
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
const Routes = () => (
<Router>
<div>
<ul>
<li><Link to="/about">About Link</Link></li>
<li><Link to="/company">Company Link</Link></li>
</ul>
<Switch>
<Route path="/about" component={About} />
<Route path="/company" component={Company} />
</Switch>
</div>
</Router>
);
class App extends React.Component {
render() {
return (
<Routes />
);
}
}
最佳答案
有两种方法可以解决这个问题:
1) 让您的 Web 服务器始终使用相同的 index.html
文件进行响应,无论路由如何。这可以防止 404 错误,但并不完美,因为它不支持浏览器缓存
2) 使用HashRouter - 它将把 UI 路由保留在 URL 的哈希部分中,这不会使服务器返回 404 并将启用浏览器端缓存。这种方法的缺点是您无法使用 #target 链接到网页的特定部分
关于reactjs - 如何在react-router 4中向url添加哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745095/
我是一名优秀的程序员,十分优秀!