@vasIvas

Как работают ссылки без решетки # в SPA приложениях?

Когда у spa приложений ссылки в адресной строке содержат решетку, то это не красиво.
Есть вариант с history, но я не могу понять, как они работают. То есть я ввел ссылку с решеткой,
она раз и исчезла и ссылка стала красивой. Но если её скопировать, то она уже будет не рабочей,
ведь решетки в ней нет. И получается, что либо я что-то не понимаю и именно это и прошу объяснить на словах, либо тоже объясните на словах почему так.
  • Вопрос задан
  • 391 просмотр
Пригласить эксперта
Ответы на вопрос 3
AMar4enko
@AMar4enko
Обсуждалось кучу раз уже - настройте свой веб-сервер, чтобы он на любой запрос отдавал index.html

Когда вы используете ссылку вида domain.org#/your-path, то сам веб-сервер, что бы там после # ни было, отправляет браузеру index.html, потому что для него это запрос к / (хэш существует только в браузере, на сервер не отсылается)

Когда вы используете ссылку domain.org/your-path, веб сервер пытается найти данные, соотв. этому your-path, которых 99% нет, и отдает вам 404.

Вы настраиваете сервер отдавать этот самый index.html в ответ на любой запрос.
В этом случае всегда загружается один и тот же index.html, который стартует ваше SPA, которое уже на основании window.location разбирается, что ему дальше делать.
Ответ написан
Stalker_RED
@Stalker_RED
Если она стала неработающей - это кривое SPA.
Посмотрите на https://music.yandex.ru - всё красиво и все ссылочки работают.
Читайте доки по history api и смотрте примеры реализации.
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Но если её скопировать, то она уже будет не рабочей,
ведь решетки в ней нет.

Нужно отрендерить страницу на сервере.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы