Правка есть в базе, а страница отдаёт старое: кэш кода сниппетов
Деплой писал «сниппет сохранён», в базе лежал новый код, а страница отдавала старый. Три часа поиска — и одна папка, о которой не пишет документация.
Симптом был обманчивый: правки стилей не появлялись на странице. Ни с обновлением, ни с добавлением случайного параметра к адресу. При этом в базе лежал правильный код.
Что я проверял и что исключил
По порядку: браузерный кэш (исключил случайным параметром в адресе), кэш страницы целиком (сбросил), запись в базу (сравнил содержимое сниппета построчно — новое), вызов сниппета в шаблоне (вызван). Все привычные причины отпадали.
Где на самом деле лежало старое
MODX держит отдельный кэш для кода сниппетов, отдельно от кэша страниц. Файл выглядит так:
core/cache/scripts/elements/modx/revolution/modsnippet/13.cache.php
Он не сбрасывается ни сохранением сниппета, ни общим обновлением кэша — нужна явная партиция скриптов. То есть мой деплой печатал «кэш обновлён», а кэш кода оставался прежним.
Лечение
Удалять файлы кэша скриптов и обновлять кэш с явным указанием партиций — страниц и скриптов. Это вшито прямо в деплой-скрипт, иначе наступишь на те же грабли второй раз.
Читайте дальше
Скрипт под root превратил кэш в чужой — сайт начал отдавать пустые страницы
Страница уехала вбок на 48 пикселей: min-width:auto в grid
Новые замеры
Письмо, когда выходит новый замер или разбор поломки. Без рассылок «о нас» и без продаж.