Использование html5mode для навигации по AngularJS по некорневому URL
Я пытаюсь использовать режим местоположения AngularJS HTML 5 с приложением, которое живет по некорневому URL. К сожалению, каждый раз, когда я нажимаю на ссылку, браузер выполняет полностраничную навигацию.
Вот мои настройки:
- Угловой JS v1.2.2
- Использование ASP.NET MVC для серверной части
- Корневая страница размещена в /myapp
- Страница имеет
<base href="/myapp/" />
установить в головной части $locationProvider.html5Mode(true);
запустить во время настройки приложения- Сервер настроен на возврат страницы индекса для всех ссылок, кроме /myapp/
- Использование HTML 5-совместимых браузеров (Firefox, Chrome)
Моя конфигурация маршрутизации выглядит так:
$routeProvider
.when("/", {
templateUrl: "/App/dashboard/dashboard.html",
controller: "DashboardController"
})
.when("/feature", {
templateUrl: "/App/feature/feature.html",
controller: "FeatureController"
});
Когда начальная страница загружается в /myapp, загружается представление панели мониторинга, и URL-адрес на панели навигации изменяется на /myapp/, что кажется правильным.
К сожалению, когда я нажимаю на ссылку, такую как <a href='/myapp/feature'>Feature</a>
браузер отправляет запрос на полную страницу /myapp/feature
, Я думал, что Angular должен был перехватить ссылки и просто загрузить соответствующие представления.
Как предотвратить перезагрузку полной страницы при использовании режима HTML 5 с приложением в некорневом URL?
Спасибо
1 ответ
Ответ оказался интересным. Я использовал приложение ng на один элемент выше моего ng-view, который был слишком далеко внизу. Применение приложения к элементу html решило мои проблемы.