Comment vérifier que le cache fonctionne sur la page actuelle?
9
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?
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 cache Drupal de base définit également des en-têtes similaires.
Cache hit
En voici un montrant un hit de cache Drupal standard:
Mais Drupal.org est derrière Varnish, n'est-ce pas? Je ne vois pas les en-têtes X-Cache sur mon Drupal accessibles directement. Ou je le ferais si la page avec laquelle je le testais pouvait être mise en cache?
Mołot
@ Mołot Je peux voir les en-têtes Varnish si je suis déconnecté.
Letharion
Pour mon site Drupal 7, je vois bien l'en-tête, X-Drupal-Cache: HITmais sur mon site Drupal 6, je ne vois rien. Il pourrait être supprimé par proxy inverse?
user11153
@ user11153 oui, D6 ne semble pas y définir l'en-tête HTTP X-Drupal-Cache. Cependant D7 le fait dans_drupal_bootstrap_page_cache
David Thomas
@DavidThomas Alors, qu'est-ce qui vérifie l'état du cache dans Drupal 6? Existe-t-il des alternatives? Et merci pour les instructions à D7.
user11153
0
Ajout d'en-têtes de cache au cache par défaut de Drupal 6
Malheureusement, cela implique un piratage de base.
Dans les includes/bootstrap.inclignes de changement de fichier 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;
Réponses:
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, l'onglet "Réseau" de Chrome )
Cache Miss
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 cache Drupal de base définit également des en-têtes similaires.
Cache hit
En voici un montrant un hit de cache Drupal standard:
la source
X-Drupal-Cache: HIT
mais sur mon site Drupal 6, je ne vois rien. Il pourrait être supprimé par proxy inverse?_drupal_bootstrap_page_cache
Ajout d'en-têtes de cache au cache par défaut de Drupal 6
Malheureusement, cela implique un piratage de base.
Dans les
includes/bootstrap.inc
lignes de changement de fichier deà
et le reste des instructions, c'est exactement comme dans la réponse de David .
la source