Как проверить, что кеш работает на текущей странице?

9

Некоторые модули отключают кеширование на определенных страницах. Как проще всего проверить, что это так, а также выявить проблемный модуль?

user11153
источник
С кешем Boost все просто, есть html-комментарий внизу страницы. с другими кешами это немного интереснее.
Молот
@ Mołot Меня в первую очередь интересует стандартный кеш Drupal, но инструкции для других кешей также приветствуются.
user11153 30.09.13

Ответы:

13

Самый простой способ - это проверить заголовки ответа HTTP.

Например, с помощью инструмента инспектора DOM вашего браузера (например , вкладка Chrome «Сеть» )

Кэш мисс

Вот несколько примеров заголовков ответов от drupal.org, показывающих отсутствие кэша. В этом случае, используя Varnish, основной кеш Drupal также устанавливает аналогичные заголовки.

кеш отсутствует http заголовок

Кэш Хит

Вот один из них, показывающий стандартное попадание в кеш Drupal:

попадание в кэш http заголовка

Дэвид Томас
источник
Но Drupal.org стоит за Varnish, не так ли? Я не вижу заголовков X-Cache на моем Drupal, доступ к которому осуществляется напрямую. Или если бы страница, с которой я ее тестирую, была кешируемой?
Молот
@ Mołot Я вижу заголовки Varnish, если я вышел из системы.
Летарион
Для моего сайта Drupal 7 я действительно вижу заголовок, X-Drupal-Cache: HITно на моем сайте Drupal 6 я ничего не вижу. Может быть удален обратным прокси?
user11153 30.09.13
@ user11153 да, D6 не устанавливает там HTTP-заголовок X-Drupal-Cache. Однако D7 делает это в_drupal_bootstrap_page_cache
Дэвид Томас
@DavidThomas Так, что проверяет статус кэша в Drupal 6? Есть ли альтернативы? И спасибо за инструкции к D7.
user11153 30.09.13
0

Добавление заголовков кеша в кеш по умолчанию в Drupal 6

К сожалению, это включает в себя некоторые основные взлома.

В файле includes/bootstrap.incизменения строки из

      // If there is a cached page, display it.
      if ($cache) {
        drupal_page_cache_header($cache);
        // If the skipping of the bootstrap hooks is not enforced, call hook_exit.
        if ($cache_mode != CACHE_AGGRESSIVE) {
          bootstrap_invoke_all('exit');
        }
        // We are done.
        exit;
      }
      // Prepare for non-cached page workflow.
      drupal_page_header();
      break;

в

      // If there is a cached page, display it.
      if ($cache) {
        header('X-Drupal-Cache: HIT');
        drupal_page_cache_header($cache);
        // If the skipping of the bootstrap hooks is not enforced, call hook_exit.
        if ($cache_mode != CACHE_AGGRESSIVE) {
          bootstrap_invoke_all('exit');
        }
        // We are done.
        exit;
      }
      // Prepare for non-cached page workflow.
      header('X-Drupal-Cache: MISS');
      drupal_page_header();
      break;

а остальные инструкции точно такие же, как в ответе Давида .

user11153
источник