Jak sprawdzić, czy pamięć podręczna działa na bieżącej stronie?

9

Niektóre moduły cicho wyłączają buforowanie na niektórych stronach. Jak najłatwiej sprawdzić, czy tak jest, a także zidentyfikować problematyczny moduł?

użytkownik11153
źródło
Dzięki pamięci podręcznej Boost jest to proste, na dole strony znajduje się komentarz HTML. z innymi skrzynkami jest to trochę bardziej interesujące.
Mołot
@ Mołot Interesuje mnie przede wszystkim standardowa pamięć podręczna Drupal, ale instrukcje dla innych pamięci podręcznych również są mile widziane.
user11153,

Odpowiedzi:

13

Najłatwiejszym sposobem jest sprawdzenie nagłówków odpowiedzi HTTP.

Na przykład za pomocą narzędzia inspektora DOM przeglądarki (np. Karta „Sieć” Chrome )

Cache Miss

Oto kilka przykładowych nagłówków odpowiedzi z drupal.org pokazujących brak pamięci podręcznej. W tym przypadku, używając Varnish, podstawowa pamięć podręczna Drupal również ustawia podobne nagłówki.

cache miss nagłówek http

Hit Cache

Oto jeden ze standardowych trafień w pamięci podręcznej Drupal:

cache hit nagłówek http

David Thomas
źródło
Ale Drupal.org stoi za Varnish, prawda? Nie widzę bezpośredniego dostępu do nagłówków X-Cache na moim Drupal. Czy zrobiłbym to, gdyby strona, na której testuję, była buforowalna?
Mołot
@ Mołot Widzę nagłówki Varnish, jeśli się wylogowałem.
Letharion
W mojej witrynie Drupal 7 rzeczywiście widzę nagłówek, X-Drupal-Cache: HITale na mojej stronie Drupal 6 nic nie widzę. Można go usunąć przez odwrotne proxy?
user11153,
@ user11153 tak, D6 nie wydaje się tam ustawiać nagłówka HTTP X-Drupal-Cache. Jednak D7 robi to w_drupal_bootstrap_page_cache
David Thomas
@DavidThomas Więc co sprawdzić status pamięci podręcznej w Drupal 6? Czy są jakieś alternatywy? I dzięki za instrukcje do D7.
user11153,
0

Dodanie nagłówków pamięci podręcznej do domyślnej pamięci podręcznej Drupal 6

Niestety wiąże się to z hakowaniem rdzenia.

W includes/bootstrap.inclinii zmiany pliku od

      // 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;

do

      // 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;

a reszta instrukcji jest dokładnie taka, jak w odpowiedzi Dawida .

użytkownik11153
źródło