Come verificare che la cache funzioni sulla pagina corrente?


9

Alcuni moduli disattivano automaticamente la memorizzazione nella cache su determinate pagine. Qual è il modo più semplice per verificare che sia così e identificare anche il modulo problematico?


Con Boost cache è semplice, c'è un commento html nella parte inferiore della pagina. con altre cache è un po 'più interessante.
Mołot,

@ Mołot Sono principalmente interessato alla cache Drupal standard, ma sono apprezzate anche le istruzioni per altre cache.
user11153

Risposte:


13

Il modo più semplice è probabilmente quello di ispezionare le intestazioni di risposta HTTP.

Ad esempio, con lo strumento di ispezione DOM del browser (ad esempio la scheda "Rete" di Chrome )

Cache Miss

Ecco alcune intestazioni di risposta di esempio da drupal.org che mostrano un errore nella cache. In questo caso, l'utilizzo di Varnish tuttavia la cache Drupal di base imposta anche intestazioni simili.

cache mancante intestazione http

Cache Hit

Eccone uno che mostra un hit cache Drupal standard:

intestazione http hit cache


Ma Drupal.org è dietro Varnish, vero? Non riesco a vedere direttamente le intestazioni X-Cache sul mio Drupal. O lo farei se la pagina con cui sto testando fosse memorizzabile nella cache?
Mołot,

@ Mołot Riesco a vedere le intestazioni Varnish se sono disconnesso.
Letharion,

Per il mio sito Drupal 7 in effetti vedo l'intestazione X-Drupal-Cache: HITma sul mio sito Drupal 6 non vedo nulla. Potrebbe essere rimosso dal proxy inverso?
user11153

@ user11153 sì, D6 non sembra impostare lì l'intestazione HTTP X-Drupal-Cache. Comunque D7 lo fa in_drupal_bootstrap_page_cache
David Thomas il

@DavidThomas Quindi cosa controlla lo stato della cache in Drupal 6? Ci sono alternative? E grazie per le istruzioni a D7.
user11153

0

Aggiunta di intestazioni cache alla cache predefinita di Drupal 6

Purtroppo, comporta un po 'di hacking di base.

Nel file includes/bootstrap.inccambia le righe da

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

per

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

e il resto delle istruzioni è esattamente come nella risposta di David .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.