angularjs - 适用于 Safari 的 AWS (Cloudfront/S3) 上的 Angular

标签 angularjs amazon-s3 safari angular-ui-router amazon-cloudfront

我在 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/

相关文章:

django - 从 AWS S3 存储桶加载图像时出现访问被拒绝错误

javascript - Angular $scope.$on 不起作用

javascript - 如何等待 $firebaseArray 数据

ruby - 如何模拟aws-sdk gem?

ajax - Chrome中的跨域问题可能是奇怪的Dart HttpRequest行为的b/c

Javascript/CSS 禁用 iPad 上 Safari 的橡皮筋页尾滚动?

javascript - 如何从上次结束恢复计数器

javascript - 根据多种条件处理不同颜色的文本

ios - 在 iOS 的移动 Safari 中播放时,流媒体音频失真

google-maps - 移动Safari崩溃(内存不足)