【发布时间】: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 存储桶来执行常规路由而不是重定向?
【问题讨论】:
-
这是我在 AWS 论坛上的相应帖子forums.aws.amazon.com/thread.jspa?threadID=244746
-
@jarmod 是的,谢谢,添加一个散列(然后再用角度删除它)似乎可行,但我认为应该有一种方法可以完全不使用散列。
-
我认为这个 CloudFront 解决方案可能是正确的stackoverflow.com/a/35354677/3390298
标签: html amazon-web-services angular amazon-s3 routing