При обновлении страницы ошибка 404

Рейтинг: 0Ответов: 1Опубликовано: 14.05.2023

Код на Vanills js, SPA

При обновлении любой страницы, кроме главной, вылетает ошибка 404.

Роутер:

"use strict";

const routes = {
  "/": "./pages/activity.html",
  "/home": "./pages/activity.html",
  "/map": "./pages/map.html",
  "/time": "./pages/time.html",
};

const route = (event) => {
  event = event || window.event;
  event.preventDefault();
  window.history.pushState({}, "", event.target.href);
  handleLocation();
};

const handleLocation = async () => {
  const parsePath = window.location.pathname.split("/");
  const path = "/" + parsePath[parsePath.length - 1];
  const html = await fetch(routes[path]).then((data) => data.text());
  document.getElementById("app").innerHTML = html;

  updateActiveButtons(path);
};

// Отслеживает back, go
window.addEventListener("popstate", handleLocation);

// Для начальной обработки
document.addEventListener("DOMContentLoaded", handleLocation);

Кнопка для перехода на страницу:

<a href="map">
  <p>Map</p>
</a>

Ответы

▲ 0Принят

Если кто-то тоже столкнулся с такой проблемой на github pages, то отловить такую ошибку можно создав в корне проекта файл 404.html, теперь дефолтная страница заменится на кастомную, в которой можно уже хендлер прописать