Pavel Voronin
Pavel Voronin

Reputation: 13985

$routeProvider.when('/', ...) has no effect, when html5 mode is on

Solution to the problem: url you write in base tag should have a trailing slash.

I have the following routes configuration, but template is not requested, if html5 mode is on. No errors, no attempts to get the resource from the server. Neither changing base url, nor setting prefix with hasPrefix('!') has no effect on this behavior

   angular
        .module('beneficiaryBanks')
        .config(configRoutes);

configRoutes.$inject = ['$routeProvider','$locationProvider'];
function configRoutes($routeProvider, $locationProvider) {
    $routeProvider
        .when('/',
        {
            controller: 'beneficiaryBanksListController',
            controllerAs: 'listVM',
            templateUrl: 'BeneficiaryBanksList.cshtml'
        });
    $locationProvider.html5Mode(true);
}

It looks like angular does not match current url with '/'.

update 1
Debugging shows that for url http://localhost:8080/APS/Home/BeneficiaryBanksModule and base address APS/Home/BeneficiaryBanksModule angular sees route as /BeneficiaryBanksModule which does not match with /, whereas route becomes just a / when html5 mode is disabled.

Upvotes: 2

Views: 199

Answers (3)

Pavel Voronin
Pavel Voronin

Reputation: 13985

The problem was in base tag. If it does not end with slash / angular treats last part as a file name and drops it.

That's why I saw /BeneficiaryBanksModule instead of /

Upvotes: 0

MaKCbIMKo
MaKCbIMKo

Reputation: 2820

That's because your request is handled by server itself, but not by your angular app.

Try to read some articles about how to setup your server to work with html5 mode:

https://dzone.com/articles/fixing-html5mode-and-angular http://www.thinkovator.com/blog/post/angularjs-html5-mode-and-iis-rewrite/

Hope, it will help.

Upvotes: 2

Gabriel Câmara
Gabriel Câmara

Reputation: 1249

As I could see here, there are some configurations that you may have to do in order to achieve this combination of AngularJS and IIS Express with html5 mode activated.

I don't know if you read this article, but there are a few tips to make it work.

Upvotes: 2

Related Questions