Bagaimana cara memeriksa cache yang berfungsi pada halaman saat ini?


9

Beberapa modul mematikan caching pada halaman tertentu. Bagaimana cara termudah untuk memeriksa bahwa ini adalah kasusnya dan juga mengidentifikasi modul yang bermasalah?


Dengan Boost cache itu sederhana, ada komentar html di bagian bawah halaman. dengan cache lain, ini sedikit lebih menarik.
Mołot

@ Mołot Saya terutama tertarik pada cache Drupal standar, tetapi instruksi untuk cache lain juga sangat dihargai.
user11153

Jawaban:


13

Cara termudah adalah dengan memeriksa header respons HTTP.

Misalnya, dengan alat pemeriksa DOM browser Anda (mis . Tab "Jaringan" Chrome )

Cache Miss

Berikut beberapa contoh header tanggapan dari drupal.org yang menunjukkan kehilangan cache. Dalam hal ini, menggunakan Varnish namun core Drupal cache juga menetapkan header yang serupa.

cache miss http header

Cache Hit

Ini salah satu yang menunjukkan hit cache Drupal standar:

cache klik header http


Tetapi Drupal.org ada di belakang Varnish, bukan? Saya tidak bisa melihat header X-Cache di Drupal saya diakses secara langsung. Atau saya akan lakukan jika halaman yang saya uji dengan itu bisa disimpan?
Mołot

@ Mołot saya bisa melihat header Varnish jika saya keluar.
Letharion

Untuk situs Drupal 7 saya, saya memang melihat tajuk X-Drupal-Cache: HITtetapi di situs Drupal 6 saya tidak melihat apa-apa. Itu bisa dilucuti dengan proxy terbalik?
user11153

@ user11153 ya, D6 tampaknya tidak mengatur header HTTP X-Drupal-Cache di sana. Namun D7 melakukannya di_drupal_bootstrap_page_cache
David Thomas

@ Davidvidomas Jadi apa yang memeriksa status cache di Drupal 6? Apakah ada alternatif lain? Dan terima kasih untuk instruksi ke D7.
user11153

0

Menambahkan header cache ke Drupal 6 cache default

Sayangnya, ini melibatkan beberapa peretasan inti.

Di file includes/bootstrap.incganti baris dari

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

untuk

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

dan petunjuk lainnya persis seperti jawaban David .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.