【发布时间】:2019-06-25 21:48:31
【问题描述】:
我是 AWS deployment 的新手,我正在尝试将后端 (NodeJS, Express, MongoDB) 和前端 (React/Redux) 代码部署到 AWS。我将AWS Beanstalk 用于后端,AWS amplify 用于前端代码。我已经完成了后端部署并使用邮递员对其进行了测试,甚至通过在http://localhost:3000/ 运行前端来测试API。我也在 AWS amplify 上部署了代码,但似乎我不知道它使用的 Rewrites and redirects 以便应用程序可以导航到不同的 URL。我的是SPA。我可以看到登录屏幕,但是一旦我输入凭据,它就不会导航到受保护的(使用 JWT Auth)URL。
我在 amplify 上的应用托管在:https://url-resolve-changes.d1z993fyobkz3s.amplifyapp.com/
App.js -> 包含不同的路由。除了/login 和/register 之外,所有路由都必须先使用 PrivateRoute 检查,然后才能呈现主页。我声明了 BASE_URL = host 但我不确定如何使用它在不同的 URL 上导航
// const BASE_URL = "https://url-resolve-changes.d1z993fyobkz3s.amplifyapp.com";
class App extends Component {
render() {
return (
<div className="App">
<MessageSnackbar />
<Router history={history}>
<Switch>
<PrivateRoute
exact
path={`/`}
renderFunc={routeProps => <HomePage {...routeProps} />}
/>
<Route path={`/login`} component={Login} />
<Route path={`/register`} component={Register} />
</Switch>
</Router>
</div>
);
}
}
export default withTheme()(App);
我在 Amplify 设置中的 Rewrites and redirects 中进行了以下配置。
manifest.json
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
问题是,当我点击时,现在什么都没有加载:
https://url-resolve-changes.d1z993fyobkz3s.amplifyapp.com/index.html
或
https://url-resolve-changes.d1z993fyobkz3s.amplifyapp.com/
当我从http://localhost:3000/ 发送请求时,后端 URL 已正确配置,API 工作正常。这只是我缺少的重定向部分。如果需要任何其他详细信息,请告诉我。
感谢你的帮助。提前致谢。
【问题讨论】:
标签: node.js reactjs amazon-web-services react-router aws-amplify