fix: пререндер-шаблоны работали некорректно в prod

This commit is contained in:
2026-05-19 22:45:56 +03:00
parent 9575e0e0d9
commit cb9dab9e56
10 changed files with 785 additions and 95 deletions

View File

@@ -41,7 +41,8 @@
# См. также:
* [`MANAGEMENT_RUNBOOK.md`](MANAGEMENT_RUNBOOK.md) единый runbook по management-командам и batch-операциям, сниппеты.
* [`MANAGEMENT_RUNBOOK.md`](MANAGEMENT_RUNBOOK.md) единый runbook по management-командам и кастом-операциям (регенерация кеша, рейтингов, sitemap и т.д.).
* [`CACHE_PRERENDER_SYSTEM.md`](CACHE_PRERENDER_SYSTEM.md) двухуровневая система кеширования страниц серий, структура статик-шаблонов, управление кешем.
* [`AGENTS.md`](AGENTS.md) контекст проекта для AI-ассистентов (архитектура, конвенции, рабочие сценарии).
* [`SETUP.md`](SETUP.md) пошаговая настройка окружения, запуск проекта и базовые команды разработки.
@@ -65,14 +66,25 @@
В папке `oknardia/templates/seria_info/prepared/` создаются пре-рендер HTML-шаблоны с информацией о сериях домов.
Эти шаблоны создаются при первом обращении к странице серии и хранятся для ускорения последующих запросов.
**Важно**: их надо периодически удалять, особенно если меняются:
* данные по сериям и размерам окон
* коммерческие предложения и цены
* рейтинги компонентов
**Архитектура (май 2026)**: Для каждой серии создаются **3 отдельных кешируемых файла** (верхняя статья НЕ кешируется):
* `{seria_id}_id_static_flaps.html` — схемы открывания окон
* `{seria_id}_id_static_graph.html` — график ввода в эксплуатацию
* `{seria_id}_id_static_map_stats.html` — карта Яндекса и статистика
**Рекомендация**: настроить cronjob на ежедневное или еженедельное удаление этих файлов. При обращении к соответствующим
страницам эти шаблоны будут пересозданы автоматически. На быстрых серверах можно вообще отключить кеширование, если оно
не критично для производительности.
**Верхняя статья рендерится динамически** из БД, поэтому изменения через админку видны без перезагрузки контейнера.
Таблица оконных проёмов **не кешируется** — пересчитывается при каждом запросе, поэтому новые предложения видны пользователям сразу.
**Регенерация кеша**:
```bash
python manage.py regenerate_seria_prerender # все сер<D0B5><D180>и
python manage.py regenerate_seria_prerender --seria-id 210 # конкретная серия
```
⏱️ **Когда регенерировать**: Изменены координаты зданий, добавлены новые здания, обновлены годы ввода в эксплуатацию.
**Когда НЕ нужна регенерация**: Добавлены новые предложения/цены (таблица обновляется автоматически), изменены статьи через админку (рендерятся динамически).
**Подробности**: см. [`CACHE_PRERENDER_SYSTEM.md`](CACHE_PRERENDER_SYSTEM.md)