2013-11-12 3 views
2

Я разрабатываю веб-приложение, которое определяет <base href="phoenix/"> в заголовке, как описано in this article.Base Href and Angular Routing and Views

Отображаемый по умолчанию URL-адрес: http://localhost/phoenix/, однако даже при определении базового тега в заголовке мои представления и маршруты не перенаправляются корректно.

Я включил HTML5 маршрутизации:

$locationProvider.html5Mode(true); 

, а затем определить мой маршрут как:

app.config(["$routeProvider", function ($routeProvider) { 
    $routeProvider.when('/login', { 
     templateUrl: '/views/login.html', 
     controller: 'LoginCtrl' 
    }); 
}]); 

Он пытается решить ее как:

GET http://localhost/views/login.html 404 (Not Found) 

Это работает правильно, если я добавляю базовый url до путей /phoenix/login. Должен ли я добавить это через переменную, которую я установил или что-то, или я что-то упускаю, и это должно сработать. Кроме того, будет ли работать IE8 с базой атрибутов заголовка?

+2

Прежде всего, нужно удалить/из 'views/login.html'. – stiebitzhofer

+0

Вау я чувствую себя идиотом. Спасибо за совет! – amcdnl

+0

Нет проблем, когда-то сталкивался с тем же вопросом, и мне потребовалось некоторое время, чтобы разобраться. AngularJS отличная, но иногда боль для работы. – stiebitzhofer

ответ

4

Удаление слэш с мнением

app.config(["$routeProvider", function ($routeProvider) { 
    $routeProvider.when('/login', { 
     templateUrl: 'views/login.html', 
     controller: 'LoginCtrl' 
    }); 
}]); 

и делать ссылки как:

<a href="login">Login</a> 

, но оставляя слэш для маршрута решить эту проблему.