如何配置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>
但是,这只会导致重定向循环。
有什么建议?
基本上有3个选项,使用EC2实例对配置的HTML5路由执行实际的服务器重写,或者像dnozay建议的那样,使用后备模式并重写请求以使用#!。哈希邦。最后,您可以只使用标准角度路线,这是我选择的选项。麻烦较少,当Angular2.0推出时,您可以进行更新。
这里并没有真正解决路由问题。