【问题标题】:Understanding the AngularJS IE9 Issues了解 AngularJS IE9 问题
【发布时间】:2014-06-08 12:44:53
【问题描述】:

我一直在开发一个必须支持 IE9 的 AngularJS/Rails 应用程序。根据我的阅读,我应该在我的 AngularJS 配置中将 html5Mode 设置为 true,这将对支持它的浏览器使用 HTML5 History API,并回退到旧浏览器的 hashbang URL。

在奇妙的ng-book 中,它说:

"后端服务器必须支持服务器上的 URL 重写 边。为了支持 HTML5 模式,服务器必须确保 为所有应用程序提供 index.html 页面。这确保了我们的 Angular 应用程序将处理路由。”

具体是什么意思?我必须在我的服务器端代码中检测 hashbang URL 并将它们定向到它们的非 hashbang 等价物?

因此,如果我的 AngularJS 内容位于 /v2/challenges/new(在 IE9 中显示为 /#!/v2/challenges/new),这仅意味着服务器端代码必须检测 #!并提供与/v2/challenges/new相同的内容?

我也不太明白使用 hashbang 语法如何规避 IE9 问题?

【问题讨论】:

    标签: ruby-on-rails angularjs internet-explorer


    【解决方案1】:

    这意味着,如果您的 Angular SPA 应用程序托管在 /foo,那么任何直接到达您的服务器的路由,例如如果用户尝试在他们的地址栏中或通过书签转到 /foo/angular-route 然后您的网络服务器将负责返回 /foo 的内容并允许 Angular 处理到 /angular-route 的路由

    使用哈希路由,Web 服务器基本上会忽略 # 之后的任何内容。基本上对于网络服务器/foo#/abc 的处理方式与/foo 相同,您需要将网络服务器配置为在没有# 的情况下以相同的方式运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      相关资源
      最近更新 更多