我使用S3来托管一个将使用HTML5 pushStates的javascript应用程序.问题是如果用户为任何URL添加书签,它将无法解析为任何内容.我需要的是能够获取所有URL请求并在我的S3存储桶中提供root index.html,而不仅仅是执行完全重定向.然后我的javascript应用程序可以解析URL并提供正确的页面.
有没有办法告诉S3为所有URL请求提供index.html而不是重定向?这与设置apache以通过提供单个index.html来处理所有传入请求类似,如下例所示:https://stackoverflow.com/a/10647521/1762614.我真的想避免运行Web服务器来处理这些路由.从S3做一切非常有吸引力.
我们在cloudfront上设置了一个angularjs应用程序,该应用程序包含s3存储上的所有资产文件,并通过cloudfront用于SSL和性能.
我们的设置与本指南中描述的设置完全相同
https://rossfairbanks.com/2015/01/30/integrating-angular-s3-cloudfront.html
由于我们使用相同的帖子来创建我们自己的设置,似乎这适用于除Safari之外的所有浏览器.
在Safari上,当直接访问给定路径上的URL或刷新任何子页面时,ui-router会将用户页面重定向到登录页面.
但是对于暂存,我们有相同的设置,但直接在S3上运行而没有中间的CloudFront,因此没有SSL.但是,它似乎甚至在Safari上工作
所以,问题似乎是CloudFront和Safari更具体的问题.
任何人都可以建议可能的原因是什么?以及我们如何解决它?
更新:此问题可能与此错误有关https://bugs.webkit.org/show_bug.cgi?id=24175