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?
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?
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:
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
Malheureusement, cela implique un piratage de base.
Dans les includes/bootstrap.inc
lignes 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;
et le reste des instructions, c'est exactement comme dans la réponse de David .