我将尝试以一种非常简单的方式将其放置。
这是供参考的路由文件:
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 })