我会尝试以一种非常简单的方式。
这是路由文件以供参考:
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
。这是网址http://localhost/#/dashboard
。
但是当我尝试使用html5Mode(with <base href="/"> tag set in index.html
时,它并没有路由到dashboard
。相反,它会路由到home.html
。这就是我得到的http://localhost/
。 (home.html加载,而不是dashboard.html)
我真的想知道为什么当html5Mode被评论时它成功路由到dashboard
以及为什么它在没有评论时没有
请社区帮助我。
答案 0 :(得分:0)
When html5Mode is enabled,表示相对链接的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 })