我们在cloudfront上设置了一个angularjs应用程序,它具有s3存储上的所有资源文件,并通过cloudfront进行SSL和性能。
我们与本指南中描述的设置相同
https://rossfairbanks.com/2015/01/30/integrating-angular-s3-cloudfront.html
当我们使用同样的文章创建我们自己的设置,似乎这适用于除Safari之外的所有浏览器。
在Safari上,当直接访问给定路径的URL或刷新任何子页面时,ui路由器将将用户页面重定向到登录页面。
对于分段,我们有相同的设置,但直接在S3上运行,没有CloudFront,因此没有SSL。但是,即使在Safari上,它似乎也可以工作
所以问题似乎是CloudFront和Safari的一个更具体的问题。
任何人都可以建议什么是什么原因?我们如何解决呢?
更新:此问题可能与此错误https://bugs.webkit.org/show_bug.cgi?id=24175有关
Angular on AWS (Cloudfront/S3) for Safari
我想出你需要使用https,以便Safari才能正确刷新。你可以告诉S3重定向到https协议,问题解决了:
<Redirect> <Protocol>https</Protocol> <HostName>test.example.com</HostName> <ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith> </Redirect>