JUST · AI инженерные заметки Внедрение под ключ
Главная / Статьи / Как я ломал прод
Как я ломал продmodxкэшдеплой 6 минут2026-09-24

Правка есть в базе, а страница отдаёт старое: кэш кода сниппетов

Деплой писал «сниппет сохранён», в базе лежал новый код, а страница отдавала старый. Три часа поиска — и одна папка, о которой не пишет документация.

5,2 споиск через DeepSeek
225 мсрешение на модели-решателе
$0,0001цена одного решения

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

Что я проверял и что исключил

По порядку: браузерный кэш (исключил случайным параметром в адресе), кэш страницы целиком (сбросил), запись в базу (сравнил содержимое сниппета построчно — новое), вызов сниппета в шаблоне (вызван). Все привычные причины отпадали.

Где на самом деле лежало старое

MODX держит отдельный кэш для кода сниппетов, отдельно от кэша страниц. Файл выглядит так:

путь к кэшу кода
core/cache/scripts/elements/modx/revolution/modsnippet/13.cache.php

Он не сбрасывается ни сохранением сниппета, ни общим обновлением кэша — нужна явная партиция скриптов. То есть мой деплой печатал «кэш обновлён», а кэш кода оставался прежним.

Лечение

Удалять файлы кэша скриптов и обновлять кэш с явным указанием партиций — страниц и скриптов. Это вшито прямо в деплой-скрипт, иначе наступишь на те же грабли второй раз.

Правило, которое я вывел. Если правка кода не видна — сверяй не только базу, но и файл кэша кода. И проверяй результат замером на странице, а не словом «сохранено» в логе.

Читайте дальше

Новые замеры

Письмо, когда выходит новый замер или разбор поломки. Без рассылок «о нас» и без продаж.