Почему history.pushState () нарушает мои функции навигации? - PullRequest
2 голосов
/ 02 августа 2020

Я использую history.pushState(), чтобы показать URL-адрес, который указывает динамическое c содержимое (статью), отображаемое в данный момент.

Если я вернусь на свою домашнюю страницу (index. html) после просматривая некоторый динамический c контент, а затем пытаюсь перейти на другую страницу, отличную от index. html, мои навигационные ссылки становятся неработающими.

На mysite.com/articles всякий раз, когда выбирается новая статья, я звоню history.pushState(null, null, '/articles/' + <articleID>);. Это работает правильно, как я и ожидал. Отображаемый URL-адрес становится mysite.com/articles/articleID.

Current Behavior:

На этом этапе, если я нажимаю навигационную ссылку на go назад к index.html страница успешно изменяется на индекс. html но отображаемый URL становится mysite.com/articles/index.html

Ожидаемое поведение

Отображаемое URL-адрес должен стать mysite.com или mysite.com/index.

Моя проблема:

  1. То, как я использую history.pushState(); или
  2. способ настройки моих навигационных ссылок?

1 Ответ

0 голосов
/ 03 августа 2020

Ваш общий метод перенаправления c перенаправляет все на /articles/<articleID>, включая ссылку на домашнюю страницу (как вы упомянули ...articles/index.html).

Хотя ваше приложение по причине может разрешить articles/index.html на главную страницу (не знаю почему). С этого момента все относительные ссылки (которые не начинаются с /) будут относиться к текущему пути - /articles/index.html.

Чтобы исправить это, вы должны исключить ссылки на домашнюю страницу из общих c механизм перенаправления и перенаправление на /.

...