我正在使用React-router,当我单击链接按钮时,它可以正常工作,但是当我刷新网页时,它不会加载我想要的内容。
例如,我进去了localhost/joblist
,一切都很好,因为我按链接到达这里。但是,如果刷新网页,则会得到:
Cannot GET /joblist
默认情况下,它不是这样工作的。最初,我的URL为localhost/#/
,localhost/#/joblist
并且它们工作正常。但是我不喜欢这种URL,因此尝试删除它#
,我写道:
Router.run(routes, Router.HistoryLocation, function (Handler) {
React.render(<Handler/>, document.body);
});
这个问题不会发生localhost/
,这个总是返回我想要的。
编辑:这个程序是单页的,所以/joblist
不需要向任何服务器询问任何内容。
EDIT2:我的整个路由器。
var routes = (
<Route name="app" path="/" handler={App}>
<Route name="joblist" path="/joblist" handler={JobList}/>
<DefaultRoute handler={Dashboard}/>
<NotFoundRoute handler={NotFound}/>
</Route>
);
Router.run(routes, Router.HistoryLocation, function (Handler) {
React.render(<Handler/>, document.body);
});
在Joshua Dyck的答案中添加更多信息。
如果您使用的是Firebase,并且要同时使用根路由和子目录路由,则需要在:中添加以下代码
firebase.json
:例:
您正在为客户建立一个网站。您希望网站的所有者在https://your.domain.com/management中添加信息,同时网站的用户将导航到https://your.domain.com。
在这种情况下,您的
firebase.json
文件将如下所示: