🚀 Расширенные возможности витрины Storefront (Next.js 16)
Фронтенд-проект витрины, помимо высокой скорости рендеринга, включает продвинутые функции для мобильной установки, профессионального SEO и информационной безопасности корпоративного уровня.
📱 Поддержка PWA и автономный режим
Магазин настроен как прогрессивное веб-приложение (Progressive Web App — PWA). Это позволяет пользователям Android и iOS устанавливать сайт прямо на домашний экран как нативное приложение.
- Конфигурация: Управляется плагином @ducanh2912/next-pwa в файле store/next.config.js.
- Динамический манифест: Файл store/src/app/manifest.ts генерирует данные об иконках, цветах темы и названии приложения.
- Автономный режим (Fallback): При потере интернет-соединения Service Worker автоматически перенаправляет на кастомную страницу ~offline/page.tsx.
Примечание для разработчиков
Регистрация Service Worker отключена в режиме разработки (Development), чтобы кэширование файлов не мешало разработке.
🔒 Строгие заголовки безопасности (Security Headers)
Для защиты от распространенных атак, таких как внедрение кода (XSS) и кликджекинг, заголовки безопасности инжектируются глобально через Next.js:
store/next.config.js (раздел headers)
javascriptasync headers() { return [ { source: '/(.*)', headers: [ { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' }, { key: 'X-XSS-Protection', value: '1; mode=block' }, { key: 'X-Frame-Options', value: 'SAMEORIGIN' }, { key: 'X-Content-Type-Options', value: 'nosniff' }, { key: 'Content-Security-Policy', value: "default-src 'self'; ..." } ], }, ];}🕷️ Динамическое SEO и мультинациональный Sitemap
Вместо ручного обновления карты сайта файл sitemap.ts параллельно опрашивает бэкенд-микросервисы для формирования максимально полного sitemap для поисковых систем.
Этапы генерации карты сайта:
- Статические страницы: Обход маршрутов «О нас», контактов для всех активных стран и регионов (Regions).
- Получение товаров (Medusa): Подключение к базе данных Medusa для извлечения полного списка товаров с датами последнего обновления.
- Получение статей (Strapi): Запрос к CMS и включение ссылок на все опубликованные статьи блога.
Значение для поисковых систем
Благодаря этому механизму, как только редактор публикует статью в Strapi или администратор создает товар в Medusa, ссылка мгновенно появляется в /sitemap.xml.