【发布时间】:2020-09-12 04:45:42
【问题描述】:
我有一个使用路由的 Angular 应用程序,构建并部署到 S3 存储桶。如果我转到应用程序的 URL 根目录,它工作正常。例如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 错误,指出资源不存在。这是真的 - 在 /home 对应的 S3 存储桶中没有文件。
如何确保 URL 请求通过应用而不是 S3 路由?
更新:看起来 CloudFront 可能会这样做。我在 CloudFront 中配置什么?
【问题讨论】:
-
S3 基本上太“笨”了,无法处理这个问题。您需要在 S3 前面有一个实体,它可以为您处理对 /index.html 的重写。过去,我使用 cloudflare worker 为我做这件事。我确定 AWS 也有解决方案吗?也许是 lambda?
标签: angular amazon-s3 angular-routing