web-dev-qa-db-fra.com

Comment vérifier que le cache fonctionne sur la page actuelle?

Certains modules désactivent silencieusement la mise en cache sur certaines pages. Comment est le moyen le plus simple de vérifier que c'est le cas et d'identifier également le module problématique?

9
user11153

Le moyen le plus simple consiste probablement à inspecter les en-têtes de réponse HTTP.

Par exemple, avec l'outil d'inspection de votre navigateur DOM (par exemple onglet "Réseau" de Chrome )

Échec du cache

Voici quelques exemples d'en-têtes de réponse de drupal.org montrant un cache manquant. Dans ce cas, l'utilisation de Varnish, mais le noyau Drupal cache définit également des en-têtes similaires.

cache miss http header

Accès au cache

En voici un montrant un Drupal hit hit:

cache hit http header

13
David Thomas

Ajout d'en-têtes de cache à Drupal 6 cache par défaut

Malheureusement, cela implique un piratage de base.

Dans le fichier includes/bootstrap.inc changer les lignes 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;

à

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

et le reste des instructions c'est exactement comme dans la réponse de David .

0
user11153