我一直在开发一个必须支持IE9的AngularJS/Rails应用程序。根据我所读到的,我应该在我的html5Mode配置中将AngularJS设置为true,它将对支持它的浏览器使用HTML5历史API,对于旧浏览器则返回到hashbang URL。
在奇妙的吴书中,它说:
“后端服务器必须支持服务器端的URL重写。要支持HTML5模式,服务器必须确保为所有应用提供index.html页面。这将确保我们的角度应用程序能够处理路由。”
这具体是什么意思?我必须在服务器端代码中检测hashbang URL并将它们定向到它们的非hashbang对应项?
因此,如果我的AngularJS内容位于/v2/challenges/new (在IE9中以/#!/v2/challenges/new形式出现),这就意味着服务器端代码必须检测#!并提供与/v2/challenges/new相同的内容
我也不太明白回到hashbang语法是如何绕过IE9问题的?
发布于 2014-04-23 15:16:37
这意味着如果您的SPA应用程序是在/foo托管的,那么任何直接到达服务器的路由,比如用户试图在地址栏或书签中访问/foo/angular-route,则您的web服务器将负责在/foo返回内容,并允许角向/angular-route进行路由。
对于散列路由,web服务器基本上忽略了#之后的任何内容。基本上,对于web服务器,/foo#/abc的处理方式与/foo相同,您需要配置web服务器,使其在不使用#的情况下以相同的方式工作。
https://stackoverflow.com/questions/23248448
复制相似问题