Как изменить URL и не перезагружать страницу в AngularJS - PullRequest
0 голосов
/ 09 апреля 2019

Мой проект AngularJS использует html5mode, я делаю эти коды, чтобы открыть html5mode

  • В HTML:
...
<base href="/features-A/">
...
  • В JS:
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

Вот что делает браузер :

  1. при переходе на мою страницу входа в систему, URL в адресной строке

    http://myhost.com/features-A/signin

  2. При переходе на страницу "Домой" , URL в адресной строке

    http://myhost.com/features-A/ome

Как мы видим, AngularJS изменил URL с помощью History API, добавив /features-A/ внутрь к URL

Что я хочу

  1. когда люди получают доступ к «Вход», URL не имеет /features-A/:

    http://myhost.com/signin

  2. Когда люди заходят на «Домашнюю» страницу, URL имеет /example:

    http://myhost.com/features-A/home

Это сделает наш веб-сайт похожим на страницу входа в систему, которая является независимой и находится за пределами /features-A/.

Что я пробовал

Я пробовал некоторые решения, но они не работали:

  1. Установить базовый href динамически в событии stateChangeSuccess, но URL все еще изменился
  2. Использовать API истории HTML5 * функции 1090 * и replaceState, таким образом, страница будет обновляться бесконечно

Итак, есть ли решение для решения этой проблемы?

1 Ответ

0 голосов
/ 09 апреля 2019

как не создать новый виртуальный хост?

через php

php -S localhost:8080

введите эту команду в проекте вашей папки

...