Использование 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 решило мои проблемы.

Другие вопросы по тегам