Как создать сайт SPA?
смотрел на ютубе видос как сделать сайт SPA, вот сам видос - https://www.youtube.com/watch?v=yF6CQTmFlnQ&t=242s скопировал весь код с гитхаба но у меня почему то не работает, не может найти страницу хотя все в точности как в видео. Как можно решить проблему? Мне нужно сайт сделать на чистом js без фреймворка
Дополнительно:
Сначала надо понять как делать не спа
Нужен web сервер потому что, а вы просто файл открыли браузером
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Если вы просто открываете HTML-файл двойным кликом, адрес будет вида file:///.... Для SPA это часто ломает маршрутизацию, загрузку модулей и обработку путей. Нужен локальный web-сервер, даже если проект написан на чистом JavaScript без фреймворков.
Самый простой вариант:
npx serve .
или, если установлен PHP:
php -S localhost:8080
После этого открывайте сайт как http://localhost:8080/.
Второй момент: у SPA должен быть fallback на index.html. Если вы переходите на /about, сервер не должен искать физический файл about, он должен вернуть index.html, а уже ваш JS-роутер разберёт путь.
Для чистого JS проще начать с hash-router: /#/about. Он работает даже на простом статическом сервере и не требует настройки rewrite. Когда разберётесь, можно перейти на history API и настроить серверные правила.
Ошибка “не может найти страницу” обычно появляется не из-за JavaScript, а из-за маршрутизации. В SPA реальных HTML-страниц для каждого URL нет. Есть один index.html, а переключение страниц делает JS.
Проверьте три вещи:
- проект запущен через web-сервер, а не открыт как файл;
- пути к JS/CSS написаны относительно корня корректно;
- сервер настроен отдавать
index.htmlдля внутренних маршрутов.
Если хотите без настройки сервера, используйте hash-навигацию:
<a href="#/contacts">Контакты</a>
window.addEventListener("hashchange", renderRoute);
Если хотите красивые URL вроде /contacts, тогда нужен history API плюс rewrite на сервере. Для nginx это обычно try_files $uri $uri/ /index.html;, для Apache - правило через .htaccess. Без этого при обновлении страницы сервер будет искать физический файл и отдавать 404.


Для создания сайта SPA (Single Page Application), необходимо использовать фреймворки или библиотеки, которые позволяют работать с таким типом приложений. Один из самых популярных фреймворков для создания SPA - это React.js.
Для начала создания сайта SPA с использованием React.js, вам необходимо установить Node.js и npm (Node Package Manager) на вашем компьютере. После этого вы можете создать новый проект, используя Create React App, который является удобным инструментом для быстрого создания приложений React.
Для создания нового проекта с помощью Create React App, выполните следующие шаги:
1. Откройте терминал и выполните команду `npx create-react-app my-spa-app`, где `my-spa-app` - название вашего проекта.
2. После завершения установки, перейдите в папку вашего проекта, используя команду `cd my-spa-app`.
3. Запустите приложение, выполнив команду `npm start`.
После выполнения этих шагов, вы увидите стандартное приложение React, которое будет отображаться в браузере. Теперь вы можете начать разрабатывать ваш сайт SPA, добавляя новые компоненты, роутинг, стили и другие элементы.
Для работы с роутингом в SPA, вы можете использовать библиотеку React Router, которая позволяет создавать динамические маршруты и переходы между различными страницами вашего приложения.
Пример использования React Router для создания роутинга в вашем приложении:
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; function App() { return ( ); }
Таким образом, создание сайта SPA с использованием React.js предполагает использование фреймворков и библиотек, которые облегчают процесс разработки и позволяют создавать динамические и отзывчивые веб-приложения.