如何使AngularJS路由与index.html /#/ myPage一样工作,如index.html#/ myPage

时间:2015-02-09 10:26:24

标签: javascript html angularjs iframe angular-ui-router

我当前的iFrame页面加载了 index.html#/ myPage ,它在Chrome或Safari下运行良好,但不适用于IE 11

我在SO上找到了this solution: 在#( index.html /#/ myPage )之前添加/,它将解决您的问题

看起来很简单,但就我而言,它会产生 404 Page not found

似乎我的路线提供商不支持/之前的#,为什么?

路由代码:

appSkeleton.config(
    function ($routeProvider) {
    $routeProvider.
            when('/', {
                template: '<skeleton-manage></skeleton-manage>'
            })
            .when('/skeletonManage', {
                template: '<skeleton-display-and-manage></skeleton-display-and-manage>'
            })
           .when('/employeeManage/:employeeId/:displayMode/:idItemClick?', {
                template: '<employee-display-and-manage></employee-display-and-manage>'
            })          
            .otherwise({
                redirectTo:'/'
            });

    }
);

该应用程序适用于 Node.JS 服务器

1 个答案:

答案 0 :(得分:3)

它不适用于app / index.html#/但它适用于app /#/,您不需要在URL上指定index.html 或者您可以通过代码

直接重定向到没有index.html的URL
var url =  window.location.href;
      if(url.indexOf("index.html") > 0){
          window.location.replace(url.replace("index.html",""));
}