¿Cómo verificar que el caché funciona en la página actual?

9

Algunos módulos desactivan el almacenamiento en caché en ciertas páginas. ¿Cómo es la forma más fácil de verificar que este sea el caso y también identificar un módulo problemático?

usuario11153
fuente
Con Boost cache es simple, hay un comentario html en la parte inferior de la página. con otros cachés es un poco más interesante.
Mołot
@ Mołot Estoy principalmente interesado en el caché estándar de Drupal, pero las instrucciones para otros cachés también son apreciadas.
user11153

Respuestas:

13

La forma más fácil es probablemente inspeccionar los encabezados de respuesta HTTP.

Por ejemplo, con la herramienta de inspección DOM de su navegador (por ejemplo, la pestaña "Red" de Chrome )

Miss caché

Aquí hay algunos encabezados de respuesta de muestra de drupal.org que muestran un error de caché. En este caso, el uso de Varnish, sin embargo, el caché Drupal también establece encabezados similares.

caché miss encabezado http

Golpe de caché

Aquí hay uno que muestra un hit de caché Drupal estándar:

cabecera http de hit de caché

David Thomas
fuente
Pero Drupal.org está detrás de Varnish, ¿no? No puedo ver los encabezados de X-Cache en mi Drupal accediendo directamente. ¿O lo haría si la página con la que lo estoy probando fuera almacenable en caché?
Mołot
@ Mołot Puedo ver los encabezados de Barniz si estoy desconectado.
Letharion
Para mi sitio Drupal 7, de hecho, veo el encabezado, X-Drupal-Cache: HITpero en mi sitio Drupal 6 no veo nada. ¿Podría ser despojado por proxy inverso?
user11153
@ user11153 sí, D6 no parece establecer el encabezado HTTP X-Drupal-Cache allí. Sin embargo, D7 lo hace_drupal_bootstrap_page_cache
David Thomas
@DavidThomas Entonces, ¿qué verificar el estado de la memoria caché en Drupal 6? ¿Hay alguna alternativa? Y gracias por las instrucciones para D7.
user11153
0

Agregar encabezados de caché al caché predeterminado de Drupal 6

Lamentablemente, se trata de un pirateo central.

En las includes/bootstrap.inclíneas de cambio de archivo de

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

a

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

y el resto de las instrucciones es exactamente como en la respuesta de David .

usuario11153
fuente