ui-router 不会路由到 $urlRouterProvider.否则启用 HTML5Mode 时



我将尝试以一种非常简单的方式将其放置。

这是供参考的路由文件:

angular
        .module("app")
        .config(function($stateProvider,$locationProvider,$urlRouterProvider){
            $urlRouterProvider.otherwise("dashboard");
            $stateProvider
                    .state("home",{
                        url: "/",
                        templateUrl: "views/home/home.html"
                    })
                    .state("login",{
                        url: "/login",
                        templateUrl: "views/login/login.html"
                    })
                    .state("home.dashboard",{
                        url: "dashboard",
                        templateUrl: "views/home/dashboard.html"
                    });       
             $locationProvider.html5Mode(true);
});


现在,当我对$locationProvider.html5Mode(true);发表评论时,路线正常转到dashboard。这是URL http://localhost/#/dashboard

但是,当我尝试使用html5Mode(with <base href="/"> tag set in index.html时,它不会路由到dashboard。相反,它可以路由到home.html。这就是我得到的http://localhost/。(home.html加载,而不是dashboard.html(


我真的想知道为什么在评论html5mode时它成功地路由到 dashboard,以及为什么不被注释时不会

请社区帮助我。

当启用HTML5Mode时,它表示相对链接的URL重写。

这必须解决问题,(前缀dashboard url /(

.state("home.dashboard",{
  url: "/dashboard",
  templateUrl: "views/home/dashboard.html"
}); 

这是另一种方法(传递对象并将requireBase设置为false(:

.state("home.dashboard",{
  url: "dashboard",
  templateUrl: "views/home/dashboard.html"
});
$locationProvider.html5Mode({ enable: true, requireBase: false }) 

最新更新