我为locationProvider设置了路由并启用了html5模式:
app.config(function($routeProvider, $locationProvider) {
// removing this locationProvider will make route work
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
$routeProvider
.when('/', {
templateUrl : '../assets/js/app/views/user/form.html',
controller : 'UserFormController'
})
// yada yada yada
});
现在,当我到达基本网址时:
http://localhost/projectapp/index.php/foo
未加载控制器,也不是form.html,可能是因为路由未加载控制器。当我从配置中删除$ locationProvider html模式时,控制器被加载。为什么不加载控制器?
答案 0 :(得分:0)
查看HTML5 Mode errors的文档,
如果您将$ location配置为使用
,将$ locationProvider标记或配置为不需要基本标记html5Mode
(history.pushState),则需要使用<base href="">
为应用程序指定基本网址strong>通过将带有requireBase:false
的定义对象传递到$locationProvider.html5Mode()
您是否在HTML中添加了base
标记?
答案 1 :(得分:0)
你可以简单地使用它:
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
但是要使用html5模式。您需要在index.html文件中添加以下标记。
<html>
<head>
<base href="#" />
</head>
</html>
我希望这会奏效:)