Стратегия маршрутизации
При настройке маршрутизации приложения в угловом проекте можно выбирать между обычной маршрутизацией HTML5 (PathLocationStrategy
) или маршрутизацией "в стиле хеш-адреса" (HashLocationStrategy
).
По умолчанию PathLocationStrategy
, но маршруты в хэш-стиле можно реализовать, передав {useHash: true}
в качестве второго параметра функции RouterModule.forRoot()
В соответствии с официальной документацией Angular относительно LocationStrategy и стилей URL браузера.:
Старые браузеры отправляют запросы на страницу на сервер, когда URL-адрес местоположения изменяется, если только изменение не происходит после "#" (называемого "хеш").Маршрутизаторы могут использовать это исключение, составляя URL-адреса маршрутов в приложении с помощью хэшей.
Почему Angular поддерживает маршруты хэширования
A #
в URL-адресе, представляющем идентификатор привязки ( RFC1738 ) и очень полезен при связывании с определенным контентом на странице.
То, что угловатое эксплуатирует с HashLocationStrategy
, заключается в том, что любой контентпосле того, как символ #
не отправлен на сервер - что делает его идеальным для хранения состояния приложения.
Почему это полезно
С хэш-маршрутизацией страницыперезагрузить (или пересмотреть через закладку) на подстранице, например
http://localhost:4200/#/articles/35
, не запрашивать сервер для подстраницы, а вместо этого возвращает главную страницу приложения
http://localhost:4200/
Таким образом, серверная реализация должна знать только о корневой странице (это единственное, что когда-либо будет запрошено)
Использование PathLocationStrategy
(по умолчанию) серверадолжен быть настроен для обработки запросовдля каждого URL, который реализует ваше приложение.