如何将Angular应用程序部署到S3以响应路由URL
我有一个Angular应用程序,它使用路由,构建并部署到S3存储桶。如果我转到应用程序URL的根目录,它可以正常工作。e、 g.如何将Angular应用程序部署到S3以响应路由URL,angular,amazon-s3,angular-routing,Angular,Amazon S3,Angular Routing,我有一个Angular应用程序,它使用路由,构建并部署到S3存储桶。如果我转到应用程序URL的根目录,它可以正常工作。e、 g.www.my-app.com.s3.foo.bar.amazonaws.com/ 它在应用程序中运行良好。例如,如果我遵循指向['/home']的路由器链接,它会进入www.my-app.com.s3.foo.bar.amazonaws.com/home,依此类推 但是如果我直接进入,比如说,www.my-app.com.s3.foo.bar.amazonaws.com
www.my-app.com.s3.foo.bar.amazonaws.com/
它在应用程序中运行良好。例如,如果我遵循指向['/home']的路由器链接,它会进入www.my-app.com.s3.foo.bar.amazonaws.com/home
,依此类推
但是如果我直接进入,比如说,www.my-app.com.s3.foo.bar.amazonaws.com/home
,我会收到一个s3错误,说资源不存在。这是真的-S3 bucket中没有与/home对应的文件
我如何确保URL请求通过应用程序而不是S3路由
更新:看起来CloudFront可能会这样做。我应该在CloudFront中配置什么?您可以通过返回SPA的相应根页面,配置CloudFront以从S3角度处理“未找到”页面
- 创建您的CloudFront发行版
- 转到分发配置中的错误页面选项卡,并添加新的错误页面
- 从CloudFront透视图处理的错误是404未找到错误,因此在HTTP错误代码字段中输入404
- 选择自定义响应并输入应用程序的根html页面的位置(在S3 bucket中),例如/index.html
- 从浏览器的角度来看,这是一个有效的请求和响应,因此在HTTP响应代码字段中输入200