Angular app routeProvider在安装在sup路径上的应用程序中混淆

时间:2013-11-08 13:53:33

标签: angularjs angularjs-routing

我的单页应用未安装在根目录上,因此该应用的路径类似于http://…/sub/。我把它添加到HTML文件中来处理基础:

<base href="/sub/"/>

我的路由提供者按照您期望的方式设置:

$locationProvider.html5Mode(true).hashPrefix('!');
$routeProvider
  .when("/", { })
  .when("/foo/", { })
  .when("/bar/", { }) 

在Chrome,Safari,Firefox和IE9中都很好,但在IE8上却失败了。为了使它工作,我不得不添加它以确保它正确初始化:

if (!history.pushState && !window.location.hash) {
    window.location.replace("/sub/#!/");
}

为什么需要?有没有其他方法让它在IE8中工作而不诉诸这些黑客? (我在角度1.2.0.rc.3)

1 个答案:

答案 0 :(得分:0)

通过遵循AngularJS IE兼容性指南,我已经让我的应用程序可以在IE8 +(和IE7上有不同的结果)上运行:http://docs.angularjs.org/guide/ie