Мой проект AngularJS использует html5mode
, я делаю эти коды, чтобы открыть html5mode
...
<base href="/features-A/">
...
app.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5mode(true)
}])
ПРИМЕЧАНИЕ : /features-A/
не является реальной папкой в моем проекте, это просто поведение, определенное в AWS CloudFront, поскольку у нас также есть некоторый URL /features-B
, указывающий на другие проекты Нам нужно только знать, что: Доступ к нему через "http://myhost.com" или" http://myhost.com/features-A/" - это файл ввода для моего проекта: index.html
Вот что делает браузер :
при переходе на мою страницу входа в систему, URL в адресной строке
http://myhost.com/features-A/signin
При переходе на страницу "Домой" , URL в адресной строке
http://myhost.com/features-A/ome
Как мы видим, AngularJS изменил URL с помощью History
API, добавив /features-A/
внутрь к URL
Что я хочу
когда люди получают доступ к «Вход», URL не имеет /features-A/
:
http://myhost.com/signin
Когда люди заходят на «Домашнюю» страницу, URL имеет /example
:
http://myhost.com/features-A/home
Это сделает наш веб-сайт похожим на страницу входа в систему, которая является независимой и находится за пределами /features-A/
.
Что я пробовал
Я пробовал некоторые решения, но они не работали:
- Установить базовый href динамически в событии
stateChangeSuccess
, но URL все еще изменился
- Использовать API истории HTML5 * функции 1090 * и
replaceState
, таким образом, страница будет обновляться бесконечно
Итак, есть ли решение для решения этой проблемы?