我在 Safari 上查看我的网站时遇到问题。我知道有很多信息可以找到,但我不知道什么会真正起作用。
我有一个带有 Angular ui-router 的 Angular 应用程序,配置如下:$locationProvider.html5Mode(true).hashPrefix('!');
在我的 index.html
<meta name="fragment" content="!">
<base href="/" />
我的 S3 配置是这样的:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<HostName>test.example.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
现在,当我在 Safari 中 F5 页面时,
#
之后的所有内容迷路。 2016年真的没有机会解决吗?
最佳答案
我找到了解决方案。显然,如果您使用 https 协议(protocol),则不会删除 Safari 和 ios 中的哈希值。您必须将协议(protocol)添加到 S3 重定向选项,如下所示:
<Redirect>
<Protocol>https</Protocol>
<HostName>test.example.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
在此示例中,我指向支持 https 的 Cloudfront 分发。使用新的证书管理器很容易安装免费的 SSL 证书。
关于angularjs - 适用于 Safari 的 AWS (Cloudfront/S3) 上的 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139659/