我当地的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)
答案 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')) })