Angularjs路由在没有#的情况下抛出404

时间:2015-03-16 22:20:44

标签: javascript angularjs url-routing ngroute

我正在使用AngularJS创建一个网站,我正在使用ngRoute模块来处理页面请求。

在我的app.config函数中,我按如下方式设置了路由:

app.config(function($routeProvider, $locationProvider, $httpProvider){
    $locationProvider.html5Mode(true);
    $routeProvider.when('/', {
        templateUrl: 'pages/index.html',
        controller: 'mainController'
    }).when('/testpage', {
        templateUrl: 'pages/test.html',
        controller: 'testController'
    }).otherwise({
        redirectTo: '/'
    });
});

当我尝试访问测试页面时,在我的MAMP本地服务器上,通过在页面名称之前添加#,如下所示:http://dev.mysite.com:8888/#testpage一切正常。

但是,如果我不在页面名称之前添加#,请执行以下操作:http://dev.mysite.com:8888/testpage我收到404错误。

我已将<base href="/">添加到包含<head>代码的index.html页面的<div ng-view>

如果有人能解释我做错了什么,我将非常感激。

1 个答案:

答案 0 :(得分:0)

Angular查找#符号来处理路由。 #符号后面的所有内容都由路由功能解释。没有#符号,没有角度路线。如果您可以在Html5模式下运行,那么您可以将其关闭,但要使用旧浏览器,则需要它。