Daniel F
Daniel F

Reputation: 340

AngularJS $locationProvider.html5Mode(true) gives error `url is undefined`

I am trying to use html5Mode for urls in AngularJS.

This code runs fine:

.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"
        });
    }
]);

But this code gives me the error 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);
    }
]);

Could the issue be that I have instead of

What could be the source of this?

Upvotes: 0

Views: 2744

Answers (1)

Andres Felipe
Andres Felipe

Reputation: 521

I just had the same problem and I just figured out how to solve this. Well my errors were:

  1. I hadn't injected "$locationProvider" I was trying to call the "html5Mode" without referencing the "$locationProvider" at the begining of the function, now I have this:

    app.config(['$routeProvider','$locationProvider',
    function($routeProvider,$locationProvider) {
    $routeProvider
        .when("/", {
            templateUrl: "Views/home/home.html",
            controller: "HomeController"
        })
    .otherwise({ redirectTo: '/'});
    
    $locationProvider.html5Mode(true);}]);
    
  2. I had the wrong, I had: " href="/" "

but I'm running all the app with a local server with Wampp so the base path for my project is "/NAME_OF_THE_PROJECT/" like this:

<base href="/SEQUOIA/">

With this two corrections I solved all the errors, as I see, you have your base without the last '/', maybe your app is searching "www.localhost.com/staticCONTENT" instead of ".../static/CONTENT".

Ah! I almost forget, I have my .htaccess just the same as shown here and here

Upvotes: 2

Related Questions