【问题标题】:How can I configure AWS S3 Bucket routing to work with html5 style routing?如何配置 AWS S3 存储桶路由以使用 html5 样式路由?
【发布时间】:2017-04-24 02:05:43
【问题描述】:

我有一个 web 应用程序(使用带有 webpack 的 Angular 2),它只需要静态文件托管......除了我使用的是 html5 样式路由(斜杠而不是哈希)。我想将它托管在 AWS S3 存储桶中。如果用户访问我的应用程序的根目录,S3 存储桶提供 index.html,一切都很好。如果用户单击使用路由器的某个按钮将他们带到 myapp.com/routename,那么它仍然可以正常工作(因为从技术上讲没有页面重新加载)。但是如果用户的入口点是 myapp.com/routename,那么浏览器将对那个 url 发出一个 get 请求,而 S3 将不知道 index.html 是它应该响应的东西。我尝试过使用 S3 路由配置...但路由配置似乎只能进行重定向,这实际上会更改 urlbar 中的 url。例如,如果我说将 myapp.com/routename 重定向到 myapp.com,它不仅仅是在该 url 上提供 index.html,它实际上是在更改浏览器中的 url,这会将用户发送回“/”路由。 有没有办法配置 S3 存储桶来执行常规路由而不是重定向?

【问题讨论】:

标签: html amazon-web-services angular amazon-s3 routing


【解决方案1】:

理论上,您可以将 index.html 复制到 404.html 之类的文件中,然后在 S3 设置的“错误文档”部分输入此文件名。当没有要显示的页面时(错误 404),S3 将显示该文档。

它应该可以工作,但这是一个可怕的想法。浏览器仍会在 HTTP 标头中收到 404 HTTP 代码。

【讨论】:

  • 是的,我认为处理“未找到文档”场景是一种不错的解决方案。返回 404 绝对不理想。我发现如果您在 CloudFront 方面执行此操作,您可以让它返回 200。
猜你喜欢
  • 2021-01-02
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2017-06-25
  • 1970-01-01
  • 2017-05-09
相关资源
最近更新 更多