一尘不染

页面刷新时使用Angular JS ui.router html5Mode(true)配置Amazon S3静态站点

angularjs

如何配置Amazon S3静态网页以正确路由Angular ui.router
html5Mode路由?在页面刷新时,它将请求一个不存在的文件,而angular无法处理该文件。在文档中,他们建议更改服务器上的URL重写。

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-
to-configure-your-server-to-work-with-html5mode

但是,S3是存储设备,并且不提供与尝试使用内置重定向规则相同的重定向选项,例如

<RoutingRules>
    <RoutingRule>
        <Condition>
            <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
        </Condition>
        <Redirect>
             <HostName>[[ your application's domain name ]]</HostName>
             <ReplaceKeyPrefixWith>#/</ReplaceKeyPrefixWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>

但是,这只会导致重定向循环。

有什么建议?


阅读 220

收藏
2020-07-04

共1个答案

一尘不染

基本上有3个选项,使用EC2实例对配置的HTML5路由执行实际的服务器重写,或者像dnozay建议的那样,使用后备模式并重写请求以使用#!。哈希邦。最后,您可以只使用标准角度路线,这是我选择的选项。麻烦较少,当Angular2.0推出时,您可以进行更新。

这里并没有真正解决路由问题。

2020-07-04