จะตรวจสอบว่าแคชทำงานบนหน้าปัจจุบันได้อย่างไร


9

บางโมดูลปิดการแคชในบางหน้าเงียบ วิธีที่ง่ายที่สุดในการตรวจสอบว่าเป็นกรณีนี้และระบุโมดูลที่มีปัญหาได้อย่างไร


ด้วยการเพิ่มแคชมันง่ายมีความคิดเห็น html ที่ด้านล่างของหน้า กับแคชอื่นมันน่าสนใจกว่านิดหน่อย
Mołot

@ Mołotฉันสนใจแค Drupal มาตรฐานเป็นหลัก แต่คำแนะนำสำหรับแคชอื่น ๆ ก็มีค่าเช่นกัน
user11153

คำตอบ:


13

วิธีที่ง่ายที่สุดคือการตรวจสอบส่วนหัวการตอบกลับ HTTP

ตัวอย่างเช่นด้วยเครื่องมือตรวจสอบ DOM ของเบราว์เซอร์ของคุณ (เช่นแท็บ "เครือข่าย" ของ Chrome )

แคชนางสาว

ต่อไปนี้เป็นตัวอย่างการตอบกลับส่วนหัวจาก drupal.org ที่แสดงแคชที่ไม่ได้รับ ในกรณีนี้การใช้วานิช แต่แคชหลักของ Drupal ก็กำหนดส่วนหัวที่คล้ายกัน

ส่วนหัว http พลาดแคช

Hit Cache

นี่คือสิ่งหนึ่งที่แสดงการเข้าใช้แคช Drupal มาตรฐาน:

แคชกดที่ส่วนหัว http


แต่ Drupal.org อยู่เบื้องหลังวานิชใช่ไหม ฉันไม่เห็นส่วนหัว X-Cache ของ Drupal ที่เข้าถึงได้โดยตรง หรือฉันจะทำอย่างไรหากเพจที่ฉันทดสอบด้วยสามารถแคชได้?
Mołot

@ Mołotฉันสามารถเห็นส่วนหัววานิชถ้าฉันออกจากระบบ
Letharion

สำหรับเว็บไซต์ Drupal 7 ของฉันฉันเห็นส่วนหัวX-Drupal-Cache: HITแต่ในเว็บไซต์ Drupal 6 ของฉันฉันไม่เห็นอะไรเลย อาจถูกปล้นโดย reverse proxy หรือไม่
user11153

@ user11153 ใช่ D6 ไม่ปรากฏขึ้นเพื่อตั้งค่าส่วนหัว X-Drupal-Cache HTTP ที่นั่น อย่างไรก็ตาม D7 ทำเช่นนั้น_drupal_bootstrap_page_cache
David Thomas

@DavidThomas ตรวจสอบสถานะแคชใน Drupal 6 อย่างไร มีทางเลือกอื่นอีกไหม? และขอบคุณสำหรับคำแนะนำสำหรับ D7
user11153

0

การเพิ่มส่วนหัวของแคชในแคชเริ่มต้นของ Drupal 6

น่าเศร้าที่มันเกี่ยวข้องกับการแฮ็กหลัก

ในincludes/bootstrap.incการเปลี่ยนไฟล์บรรทัดจาก

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

และส่วนที่เหลือของคำแนะนำก็ตรงตามที่ในคำตอบของดาวิด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.