Ошибка кеширования в плагине WP Super Cache 1.6.2
В популярном плагине кеширования WP Super Cache после обновления с 1.6.1 до 1.6.2 перестало работать кеширование, а именно WP стал отдавать при каждом запросе страницу с новой меткой времени вместо кешированный страницы с одной и той же меткой времени. Встроенная проверка кеширования (находится в настройках плагина) так и показывает, что метки времени не совпадают:
Также можно проверить кеширование, не заходя в настройки, а просто посмотрев метки в конце исходного кода страницы.
Поиск причины ошибки кеширования
При проверке выяснилось, что файлы кеша создаются плагином, но при каждом повторном запросе той же страницы сайт не отдаёт ранее кешированную страницу, а обновляет её и затем отдаёт обновлённую. Как будто кеш был просрочен.
Поскольку у меня была отключена сборка мусора — задано нулевое значение для параметра Таймаут кэширования, предположил, что нулевое значение может восприниматься новой версией плагина буквально, то есть как нулевое число секунд хранения.
После того, как поменял значение Таймаут кеширования на ненулевое, а именно, 604800 секунд (неделя):
кеширование сразу стало работать как ожидается – плагин стал отдавать именно кешированные страницы с одной и той же меткой времени.
Выводы
В итоге, если после обновления на WP Super Cache 1.6.2 возникает проблема кеширования, это может быть связано с отключенным сбором мусора (нулевое значение таймаута кеширования), и для восстановления работы кеша можно использовать большое ненулевое значение. Другие пользователи также подтверждают это наблюдение.
Надеюсь, в следующей версии автор плагина исправит эту ошибку.
UPD. Новая версия
На днях вышло обновление плагина WP Super Cache 1.6.3, где эта проблема исправлена:
Really disable garbage collection when timeout = 0 (#571)
Попробуем…
Спасибо! Очень помогли! После того, как установил в WP Super Cache время кеширования 604800 сразу плагин стал корректно кешировать. А то всё 0 да 0 показывал в кеше…
Спасибо за обратную связь, так а вроде в исправленной версии плагин должен корректно кешировать и при нулевом значении?