$ routeProvider/$ locationProvider不是AngularJS Routing中的函数

JWD*_*Dev 5 javascript url-routing angularjs angularjs-routing

我正在尝试在AngularJS中创建所谓的"SEO友好"URL.

在我的script.js中我有路由:

app.config(['$routeProvider',
function($routeProvider) {
    $routeProvider.html5Mode(true);
    when('/blog', {
        templateUrl: 'blog.html',
        controller: 'BlogController'
    }).
    when('/page/ideas', {
        templateUrl: 'ideas.html',
        controller: 'IdeasController'
    }).
    otherwise({
        templateUrl: 'home.html'
    });
}]);

app.controller("BlogController", function($scope) {
    $scope.title = 'Blog';
});

app.controller("IdeasController", function($scope) {
    $scope.title = 'Ideas';
});
Run Code Online (Sandbox Code Playgroud)

要从URL中删除#,我将启用html5模式:

$routeProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)

但是,这会导致以下错误:

由于以下原因无法实例化模块exampleApp:TypeError:$ routeProvider.html5Mode不是函数

有没有人有这个问题的解决方案?这意味着内容不会因为它而从视图中显示.

编辑:对于任何想知道的人,工作代码是:

app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $routeProvider.
        when('/blog', {
            templateUrl: 'blog.html',
            controller: 'BlogController'
        }).
        when('/page/ideas', {
            templateUrl: 'ideas.html',
            controller: 'IdeasController'
        }).
        otherwise({
            templateUrl: 'home.html'
        });
        $locationProvider.html5Mode(true);
    }]);
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 8

html5mode提供$locationProvider者可以使用方法.

您应该包括$locationProvider在你的配置阶段,使在配置块可用的依赖性和再启用html5mode#免费URL.

app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {

   //$routerProvider code here

   $locationProvider.html5Mode(true);

}]);
Run Code Online (Sandbox Code Playgroud)

此外,您必须<base href="/"index.html页面上添加>标记