Видео урока скоро будет доступно
Добавите манифест, service worker и иконки. Сделаете сайт устанавливаемым и работающим офлайн.
После этого урока вы:
Важно: PWA работает только по HTTPS. GitHub Pages даёт HTTPS автоматически — ничего настраивать не нужно.
PWA (Progressive Web App) — это сайт, который ведёт себя как нативное приложение. Его можно установить на телефон, он работает офлайн, отправляет уведомления и выглядит как обычное приложение в меню.
Аналогия: представьте, что вы создали сайт, а потом «обернули» его в обёртку приложения, и теперь пользователь может его установить как приложение — без App Store и Google Play.
Преимущества PWA:
| Компонент | Назначение |
|---|---|
| Manifest.json | Файл с настройками приложения (название, иконки, цвета, стартовый URL). |
| Service Worker | JavaScript-файл, который работает в фоне. Кэширует файлы, обрабатывает офлайн-режим, уведомления. |
| Иконки | Разные размеры для разных экранов (iOS, Android, десктоп). |
| HTTPS | Обязательное условие для PWA (GitHub Pages даёт HTTPS автоматически). |
Главное: все компоненты (манифест, service worker, иконки) — это просто файлы в вашем проекте. Вы добавите их за один урок.
Manifest.json — это JSON-файл, который описывает ваше приложение: его имя, иконки, цвета, стартовую страницу.
Не нужно писать его вручную — попросите DeepSeek:
«Создай manifest.json для моего сайта [название сайта]. Название: "Моя Школа". Стартовый URL: /index.html. Цвет темы: #0a0c0f. Цвет фона: #0a0c0f. Добавь иконки размером 192x192 и 512x512 (ссылки на них добавлю позже).»
AI сгенерирует готовый файл — вы проверите его и сохраните в корень проекта.
Попросите DeepSeek показать пример manifest.json и объяснить, что означает каждый параметр:
«Покажи пример manifest.json для моего сайта [название сайта]. Объясни, что означает каждый параметр: name, short_name, description, start_url, display, theme_color, background_color, icons.»
Сравните с тем, что AI сгенерировал на предыдущем шаге, и убедитесь, что все ключевые параметры на месте.
1.4. Попросите DeepSeek добавить ссылку на манифест в <head> вашего index.html:
«Добавь в мой index.html в раздел head ссылку на файл manifest.json, который лежит в корне сайта.»
1.5. Создание иконок:
images вашего сайта.Что такое Service Worker?
Попросите DeepSeek сгенерировать service worker:
«Напиши service worker для моего сайта. Кэшируй все файлы (HTML, CSS, JS, изображения). При отсутствии сети показывай кэшированную версию. Используй Cache API. Название кэша: "my-site-v1". Добавь обработку ошибок и обновление кэша.»
Попросите DeepSeek показать пример service worker и объяснить, что делает каждая часть кода:
«Покажи пример service worker (sw.js) для статического сайта. Объясни, что делает каждая часть: install, activate, fetch. Добавь комментарии в коде.»
Создайте файл sw.js в корне сайта и сохраните в него то, что сгенерировал AI.
Важно: пути в массиве urlsToCache должны точно совпадать с путями ваших файлов (регистр важен!).
Попросите DeepSeek добавить регистрацию service worker в конец index.html:
«Добавь в конец моего index.html (перед закрывающим тегом body) код регистрации service worker. Проверь, что браузер поддерживает service worker, и зарегистрируй файл /sw.js.»
Сохраните файл, обновите сайт и проверьте консоль браузера (F12 → Console).
Если не работает: убедитесь, что сайт открыт по https:// (или localhost), а sw.js лежит в корне сайта.
Тест офлайн-режима:
Проверка установки:
Обновление кэша. Когда вы меняете сайт, нужно обновить кэш:
CACHE_NAME в sw.js (например, с my-site-v1 на my-site-v2).activate).Автоматическое обновление. Можно добавить в sw.js обработчик для автоматического обновления — или просто перезагружать страницу после обновления кэша.
Практическое правило: каждый раз после изменений сайта меняйте версию в CACHE_NAME — тогда пользователи всегда получат свежую версию.
PWA может отправлять push-уведомления, как нативное приложение.
Для этого нужно настроить Firebase Cloud Messaging или Web Push API.
Это сложная тема, выходящая за рамки урока, но можно попробовать с AI:
«Напиши код для push-уведомлений в PWA. Используй Web Push API. Отправляй уведомление при новой заявке.»
Совет: не тратьте на это много времени сейчас — с этим заданием вы разберётесь в уроке 11 (Telegram-бот).
manifest.json для вашего сайта.sw.js) и зарегистрируйте его.Главный итог: теперь ваш сайт превратился в полноценное приложение, которое можно установить на телефон и использовать даже без интернета!
Дополнительные материалы: prompts-bonus.md, checklists-bonus.md