Загрузка по FTP
- Распакуйте архив.
Откройте папку static-cdn: внутри находятся index.html и каталоги assets, libs, packages, v1, docs, status и playground.
- Загрузите содержимое в каталог сайта.
Например, в public_html для корня домена или public_html/cdn для подпапки /cdn/. Копируйте все вложенные файлы с сохранением регистра. Используйте бинарный режим передачи, чтобы не изменить SRI.
- Откройте index.html через домен.
Если хостинг настроен на index.html, достаточно открыть адрес папки. Иначе добавьте index.html в URL. Внутренние ссылки и код подключения автоматически учитывают текущую папку.
- Проверьте раздачу.
Откройте /status/ и запустите HTTP-проверки. Затем проверьте все библиотеки в /playground/. Сервер должен возвращать файлы, а не страницу входа или SPA-заглушку.
Что устанавливать на сервер
Ничего. PHP, Node.js, npm, Python, сборка и база данных не требуются. Python-скрипты в tools/ предназначены только для необязательного локального обслуживания. Их не нужно запускать на хостинге.
Apache: необязательный .htaccess
В архиве нет активного .htaccess, чтобы не вызвать 500 на хостингах с ограниченным AllowOverride. Скопируйте содержимое config/apache.htaccess.example в файл .htaccess в корне установки, только если хостинг разрешает эти директивы.
Пример задаёт CORS и MIME, а долгое кеширование — только для файлов внутри точных версий. Если после включения появляется 500, удалите .htaccess и согласуйте директивы с хостингом. Простая раздача сайта продолжит работать без него.
Nginx
Nginx не читает .htaccess. Пример config/nginx-location.conf.example предназначен администратору сервера; в нём нужно указать путь установки и корректный root. После проверки конфигурации администратор применяет её обычным способом.
Локальный просмотр
python tools/serve.py
# Откройте http://127.0.0.1:8080Скрипт запускает сервер только на 127.0.0.1. Для другого порта: python tools/serve.py --port 8090. Остановка — Ctrl+C. Это локальный просмотр, а не production-сервер.
При двойном клике по index.html страницы и ссылки работают, но fetch/ESM могут блокироваться политиками file://. Полную работоспособность проверяйте через HTTP(S).
Изменение файлов и пересборка
Не меняйте уже опубликованные версии. До первой публикации можно изменить исходники в libs/ и запустить python tools/rebuild.py: обновятся размеры, хеши, копии файлов в packages/, JSON, ZIP и встроенные данные каталога. Исходный генератор сайта лежит рядом как build_site.py; при его запуске исходные библиотеки создаются заново.
Для контроля целостности используйте python tools/verify.py. Инструменты требуют только Python 3.13+ и стандартную библиотеку. Если Python не установлен, готовая FTP-сборка всё равно полностью работоспособна.
Фирменное оформление
Логотип и название находятся в HTML и в генераторе build_site.py. Палитра, размеры и оформление заданы переменными в начале assets/css/site.css. Поведение интерфейса — assets/js/site.js. Шрифты системные, их загрузка не требуется.