【问题标题】:React router only works with root pathReact 路由器仅适用于根路径
【发布时间】:2015-08-28 17:19:43
【问题描述】:

只有根路由有效。 /about, /home 在浏览器中显示“Cannot GET /home”。如果我用“/”替换每个路由路径,那么相应的组件正在渲染。但是当我尝试渲染某些路线(例如/home)时似乎有问题。

【问题讨论】:

    标签: reactjs reactjs-flux react-router react-jsx


    【解决方案1】:

    您必须配置您的服务器以使用Router.HistoryLocation——也就是说,无论路由如何,它都需要始终为您的 index.html 页面提供服务。

    app.get('*', function (req, res) {
      res.render('index');
    });
    

    在此处查看文档:React Router Docs - HistoryLocation

    【讨论】:

    • 我明白了,但由于我对服务器配置的了解有限,我很难在“gulp-connect”服务器中进行设置。我尝试寻找其他服务器,如 nginx、apache,但找不到任何服务器,因此最终使用 HashLocation:Router.run(routes, Router.HashLocation, (Root) => { React.render(, document.body) });我使用 HistoryLocation 的目的是以前我在 HashLocation 中遇到错误:“missing )”,我设法通过在我的 gulpfile 中导入“gulp-babel”来解决这个问题。感谢您的帮助。
    • 我正在使用一个带 express 的简单节点服务器。有很多教程可以提供更多细节。
    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 2020-04-29
    • 2022-06-15
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    相关资源
    最近更新 更多