反应路由器 v2.0 浏览器历史记录不起作用

react-router v2.0 browserHistory not working

本文关键字:历史 记录 不起作用 浏览器 路由器 v2      更新时间:2023-09-26

当前正在使用 react-route v2.0。

我确定我看过头了,但我能够让 hashHistory 工作,但在实现浏览器历史时,我收到 404 错误消息,因为我试图删除 url 中的 hashHistory,并且也想知道生产解决方法。

整个下午都在拔头发,似乎看不出我哪里出了问题。

app

/app.jsx

var React = require('react');
var ReactDom = require('react-dom');
var Router = require('react-router').Router;
var routes = require('./config/routes');
var browserHistory = require('react-router').browserHistory;
ReactDom.render(
  <Router history={browserHistory}>{routes}</Router>,
  document.getElementById('app')
);

app/config/routes.jsx

var React = require('react');
var Main = require('../components/Main');
var Home = require('../components/Home');
var Profile = require('../components/Profile');
var Router = require('react-router');
var Route = Router.Route;
var IndexRoute = Router.IndexRoute;
module.exports = (
  <Route path="/" component={Main}>
    <Route path="profile/:username" component={Profile} />
    <IndexRoute component={Home} />
  </Route>
);

这是我正在处理的回购https://github.com/SOSANA/React.JS-Tutorials-and-Things/tree/master/github-notetaker/04-state-and-props

希望有人能帮忙

您需要在脚本标记中使用根相对(或绝对)URL,否则应用最终会在目录中请求脚本,服务器会使用(捕获全部)html 文件进行响应。

<script src="/bundle.js"></script>

使用 browserHistory 在初始页面加载时提供适当的资源时,您需要另外配置服务器。

有关更多详细信息,请参阅 https://github.com/rackt/react-router/blob/master/docs/guides/basics/Histories.md#configuring-your-server。