ПРОПАЛИ СТИЛИ И КАРТИНКА ПОСЛЕ ПУБЛИКАЦИИ: ВОСПРОИЗВОДИМЫЙ ПРИМЕР
Авторский учебный пример для редакционной статьи. 03.11.2026.

Запуск: python3 verify.py
Нужен Python 3, сторонних пакетов нет. Сервер слушает только 127.0.0.1 на свободном порту, выполняет HTTP-проверки и останавливается. На VPS ничего не устанавливается.

broken/index.html загружается по HTTP, но:
1) /assets/style.css указывает в корень сервера, хотя файлы размещены в /broken/assets/;
2) ./assets/Logo.svg не совпадает с настоящим именем logo.svg.

В fixed/index.html заменены только две ссылки:
/assets/style.css → ./assets/style.css
./assets/Logo.svg → ./assets/logo.svg

На этом стенде правильны относительные ссылки: проект опубликован во вложенной папке. Абсолютный путь от корня тоже допустим, когда соответствует настоящему расположению файла. Не заменяйте все пути автоматически.

Регистр имён проверяется обработчиком явно, поэтому пример одинаково воспроизводится и на macOS с файловой системой, не различающей регистр. Это моделирование условия сервера, а не испытание Linux/VPS или конкретного хостера. Сравнение HTTP-ответов находится в results.json.

Проверено: страницы, ресурсы, MIME CSS/SVG, отсутствие подмены 404 главной страницей. Не проверено: реальный хостинг, DNS, HTTPS, форма, email, производительность и внешний браузер. Форма специально отсутствует: успешные HTTP-ответы картинок ничего не доказывают о доставке заявки.

Файлы можно использовать в публикации с указанием «учебный пример Первого деплоя». Здесь нет данных клиентов, внешних скриптов, трекеров и партнёрских ссылок.
