AngularJS $ locationProvider.html5Mode(true)给出错误`url is undefined`

时间:2015-08-23 08:11:25

标签: javascript angularjs

我正在尝试在AngularJS中使用html5Mode作为网址。

此代码运行良好:

.config(["$routeProvider", "$locationProvider",
    function($routeProvider, $locationProvider){
        $routeProvider.when("/editor", {
            templateUrl: "pages/editor/index.html"
        })
        .when("/docs", {
            templateUrl: "pages/docs/index.html"
        }).otherwise({
            templateUrl: "pages/home/index.html"
        });
    }
]);

但是这段代码给了我错误url is undefined

.config(["$routeProvider", "$locationProvider",
    function($routeProvider, $locationProvider){
        $routeProvider.when("/editor", {
            templateUrl: "pages/editor/index.html"
        })
        .when("/docs", {
            templateUrl: "pages/docs/index.html"
        }).otherwise({
            templateUrl: "pages/home/index.html"
        });

        $locationProvider.html5Mode(true);
    }
]);

问题可能是我而不是

这可能是什么来源?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我只是弄清楚如何解决这个问题。我的错误是:

  1. 我没有注入“$ locationProvider”我试图调用“html5Mode”而没有在函数开头引用“$ locationProvider”,现在我有了这个:

    app.config(['$routeProvider','$locationProvider',
    function($routeProvider,$locationProvider) {
    $routeProvider
        .when("/", {
            templateUrl: "Views/home/home.html",
            controller: "HomeController"
        })
    .otherwise({ redirectTo: '/'});
    
    $locationProvider.html5Mode(true);}]);
    
  2. 我错了,我有:“href =”/“”

  3. 但我正在使用带有Wampp的本地服务器运行所有应用程序,因此我的项目的基本路径是“/ NAME_OF_THE_PROJECT /”,如下所示:

    <base href="/SEQUOIA/">
    

    通过这两个更正,我解决了所有错误,正如我所见,你的基础没有最后的'/',也许你的应用程序正在搜索“www.localhost.com/staticCONTENT”而不是“... / static /内容”。

    啊!我几乎忘记了,我的.htaccess与显示的herehere

    相同