Як перевірити, чи працює кеш на поточній сторінці?


9

Деякі модулі мовчки вимикають кешування на певних сторінках. Як найпростіше перевірити, чи це так, а також визначити проблемний модуль?


З кеш-керуванням Boost це просто, внизу сторінки розміщено html-коментар. з іншими кешами це трохи цікавіше.
Молот

@ Mołot Мене насамперед цікавить стандартний кеш Drupal, але цінуються інструкції до інших кешів.
користувач11153

Відповіді:


13

Найпростіший спосіб - це, мабуть, перевірити заголовки відповідей HTTP.

Наприклад, за допомогою інструмента інспектора DOM у веб-переглядачі (наприклад , вкладка "Мережа" Chrome )

Кеш міс

Ось декілька зразкових заголовків відповідей від drupal.org, які показують пропущення кешу. У цьому випадку, використовуючи Varnish, однако кеш Drupal кеш також встановлює аналогічні заголовки.

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

Кеш-хіт

Ось один із стандартних звернень до кеша Drupal:

кеш потрапив у заголовк http


Але Drupal.org стоїть за Varnish, чи не так? Я не можу бачити заголовки X-кешу на моєму Drupal, до якого безпосередньо звертаються. Або я б хотів, якби сторінка, на яку я тестую, була кешована?
Молот

@ Mołot Я можу побачити заголовки лаку, якщо я вийшов із системи.
Летаріон

Для мого сайту Drupal 7 я дійсно бачу заголовок, X-Drupal-Cache: HITале на своєму сайті Drupal 6 я нічого не бачу. Це може бути знято зворотним проксі?
користувач11153

@ user11153 так, D6 не відображається для встановлення там заголовка X-Drupal-Cache HTTP. Однак D7 робить це в_drupal_bootstrap_page_cache
Девід Томас

@DavidThomas Отже, що перевірити стан кешу в Drupal 6? Чи є альтернативи? І дякую за вказівки D7.
користувач11153

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;

а решта інструкцій - це точно так, як у відповіді Давида .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.