在ec2返回404上对路由器v4部署做出反应

时间:2018-01-05 15:18:53

标签: reactjs react-router

我当地的React& Node.js应用程序在本地工作,但所有React路由都在服务器上失败。

在服务器(aws)index.html上会显示,我也会收到积极的反馈,试图通过用户&密码(所以我假设node.js路由都很好)。 但所有React Router内部路径都是“404”。

主要的React路由页面如下所示:

import { Redirect, BrowserRouter as Router, Route, Switch } from 'react-router-dom'

render() {
    return (
      <Router>
        <Switch>
          <Route exact path='/' render={() => (<Login setRedirect={this.setRedirect} />)} />
          <Route exact path='/edit-menu' component={EditMenu} />
          <Route path='/view-menu/:rest_id' component={ViewMenu} />
        </Switch>
      </Router>
    );
  }

成功登录后,页面将转发至: serverhostname :8081 / edit-menu(与localhost一样)

我希望主机名/编辑菜单显示给EditMenu的组件,就像在localhost上一样,但在服务器上返回“404”。

Git:https://github.com/Yanipo5/MenuCreator
注意:我红https://stanko.github.io/react-router-subfolder-on-server/ 它说它与开发服务器试图将路由映射到根目录????不确定,但目前我的服务器项目结构是什么方式(root&lt; - ec2-user&lt; - myProjectDirectory)

1 个答案:

答案 0 :(得分:0)

添加了node.js以捕获并将所有静态调用重定向到index.html

// handle every other route with index.html, which will contain // a
script tag to your application's JavaScript file(s). 

app.get('*', function (request, response){  
response.sendFile(path.resolve(__dirname, 'public', 'index.html')) })

进一步阅读: https://github.com/ReactTraining/react-router/blob/v2.0.0-rc5/docs/guides/basics/Histories.md#configuring-your-server