Неожиданное поведение кнопки "Назад" после столкновения с внешним 404 при использовании react SPA

Я делаю SPA приложение с react 18 и Django. У меня проблемы с пониманием и устранением проблемы, когда после того, как я встречаю 404 и нажимаю back, заголовок браузера меняется, но страница не перезагружается, хотя URL меняется в соответствии с заголовком.

Чтобы это произошло, я перехожу на главную страницу, "/". Я нажимаю реакцию "Link", чтобы перейти на "/e" внутри SPA. Если я нажимаю reload на "/e", это работает, потому что я добавил путь в django urls.py для "/e", а также маршрут react SPA react router в моем App.js. Затем я нажимаю на другую ссылку, чтобы перейти на "/b". Теперь, когда я нахожусь на "/b", который является маршрутом react router, но НЕ путем django, и обновляюсь, я получаю стандартный "естественный" django, не SPA 404.

Нажимаю в браузере Back, заголовок маршрута "/e" правильный, и сам URL браузера правильный, но страница не перезагружает мой SPA и остается страницей 404. Я не понимаю такого поведения и не знаю, как его исправить.

Если я нажму назад еще раз, он ВНОВЬ перезагрузит SPA и покажет "/" правильно, затем нажатие вперед вернет меня к "/b" в SPA.

Я бы хотел, чтобы при нажатии на кнопку "Назад" с 404, перезагружался "/e" и отображался он.

Я думаю, что это связано с моей маршрутизацией и кэшем, но я не понимаю, как и почему. Я думаю, что знаю, что когда я сталкиваюсь с 404, это стирает мой SPA, и там не должно быть запущенного javascript, так что нажатие назад должно перезагрузить мое приложение в моем воображении. Но этого не происходит, он просто показывает правильный заголовок и URL для "/e" и все еще 404 и все элементы DOM остаются точно такими же, как и в 404, нет времени загрузки, поэтому нажатие назад после естественного бэкенда 404 кажется, что он все еще находится в SPA или что-то вроде того, что не имеет смысла для меня.

Если у кого-нибудь есть идеи, пожалуйста, дайте мне знать. Спасибо.

Вернуться на верх