Angularjs 用户界面路由器不';t路由到$urlRouterProvider。否则,在启用HTML5模式时

Angularjs 用户界面路由器不';t路由到$urlRouterProvider。否则,在启用HTML5模式时,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我将试着用一种非常简单的方式来表达这一点。 以下是供参考的路由文件: 现在,当我评论$locationProvider.html5Mode(true),路线正常转到仪表板。这是URLhttp://localhost/#/dashboard但是当我尝试使用HTML5模式(在index.html中设置标记时,它不会路由到仪表板,而是路由到home.html。这就是我得到的http://localhost/(加载home.html,而不是dashboard.html) 我真的很想知道,当HTM

我将试着用一种非常简单的方式来表达这一点。

以下是供参考的路由文件:


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


但是当我尝试使用
HTML5模式(在index.html
中设置标记时,它不会路由到
仪表板
,而是路由到
home.html
。这就是我得到的
http://localhost/
(加载home.html,而不是dashboard.html)


我真的很想知道,当HTML5模式被注释时,为什么它会成功地路由到仪表板,而当它未被注释时,为什么它不会路由到仪表板
请社区帮助我。

,这意味着为相关链接重写URL

这必须解决问题,(在仪表板url前面加上
/

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


您是否尝试在state.state(“home.dashboard”、{url://dashboard”、templateUrl:“views/home/dashboard.html”}中的仪表板前面添加“/”;这似乎不起作用
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);
});
.state("home.dashboard",{
  url: "/dashboard",
  templateUrl: "views/home/dashboard.html"
}); 
.state("home.dashboard",{
  url: "dashboard",
  templateUrl: "views/home/dashboard.html"
});

$locationProvider.html5Mode({ enable: true, requireBase: false })