我的angularjs路线有问题。我的简化路由配置如下:
App.config([ '$routeProvider', function( $routeProvider ) {
$routeProvider.
when('/', {
redirectTo: '/home'
}).
when('/home', {
templateUrl: 'home.html',
controller: 'HomeCtrl'
}).
when('/404', {
templateUrl: '404.html'
}).
when('/500', {
templateUrl: '500.html'
}).
when('/:tabName', {
templateUrl: 'tabView.html',
controller: 'TabContentCtrl'
}).
when('/:tabName/:widgetName', {
templateUrl: 'tabView.html',
controller: 'TabContentCtrl'
}).
otherwise({
redirectTo: '/404'
});
}]);
问题在于,当我将网址http://myapp或http://myapp/放入浏览器时,它会将我重定向到任何地方,不会发生任何事情,甚至会重定向到404错误页面。当我将哈希值放到URL http://myapp/#时它开始工作,然后它按照我的预期工作。但是为什么我的应用程序http://myapp和http://myapp/的根URL的默认路由不起作用?
答案 0 :(得分:2)
您只需要启用html5mode:
配置javascript
App.config([ '$routeProvider', function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
}]);
<强>的index.html 强>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<base href="/">
</head>
</html>
答案 1 :(得分:0)
这取决于您如何设置虚拟主机并指向您的根index.html?如果是,那么如果您输入http://myapp,肯定会转到http://myapp/#/home