NgRoute задает базовый url для всех маршрутов - программирование
Подтвердить что ты не робот

NgRoute задает базовый url для всех маршрутов

Можно ли добавить базовый url для всех маршрутов в приложении AngularJS? По существу, изменение его местоположения на сервере (вроде, если это имеет смысл... поэтому он будет доступен не через '/', а через '/something/').

Чтобы добавить некоторый контекст, я пытаюсь разместить существующее приложение Angular за некоторой аутентификацией, так что теперь приложение будет доступно по адресу say http://mysite/secure после успешного входа в систему.

Проблема в том, что если я должен загрузить приложение в http://mysite/secure, он отлично работает (сервер, очевидно, будет обслуживать правильную страницу), но нажатие любой ссылки приведет к перезагрузке страницы и переходу на http://mysite/#newpage вместо http://mysite/secure/#newpage.

Без добавления/защиты/ко всем маршрутам и элементу ссылки это возможно? Привет, извините, если это не хорошо сказано.

4b9b3361

Ответ 1

Может быть полезно установить тег <base> HTML5. Из документации здесь:

Относительные ссылки

Обязательно проверьте все относительные ссылки, изображения, скрипты и т.д. Вы должны указать базу url в заголовке основного html файла (<base href="/my-base">), или вы должны использовать абсолютные URL-адреса (начиная с /) всюду, потому что относительный URL-адреса будут разрешены к абсолютным URL-адресам, используя исходный абсолютный URL-адрес документа, который часто отличается от корня приложения.

Запуск приложений Angular с API истории, включенным из корневого каталога документа, настоятельно рекомендуется, поскольку он заботится обо всех проблемах с относительной связью.

Ответ 2

Место для базового href должно иметь трейлинг /. Например:

<base href="location" />

не будет работать. Он должен быть в этом формате:

<base href="location/" />