ฉันกำลังพัฒนาเว็บไซต์ใน Drupal 7 และการแคชช้าลงอย่างมาก ตัวอย่างเช่นฉันมีฟังก์ชันชุดรูปแบบสำหรับฟอร์ม ฉันงงงวยทำไมมันไม่ทำงาน จนกว่าฉันจะล้างแคชและได้รับการแก้ไข
วิธีการปิดอย่างสมบูรณ์?
ฉันกำลังพัฒนาเว็บไซต์ใน Drupal 7 และการแคชช้าลงอย่างมาก ตัวอย่างเช่นฉันมีฟังก์ชันชุดรูปแบบสำหรับฟอร์ม ฉันงงงวยทำไมมันไม่ทำงาน จนกว่าฉันจะล้างแคชและได้รับการแก้ไข
วิธีการปิดอย่างสมบูรณ์?
คำตอบ:
ฟังก์ชั่นชุดรูปแบบได้รับการจัดการโดยการลงทะเบียนชุดรูปแบบ: การสร้างใหม่ (หรือแย่กว่านั้นปิดการใช้งาน) แคชทั้งหมดในเว็บไซต์ของคุณเพื่อรับฟังก์ชั่นชุดรูปแบบใหม่นั้นไม่จำเป็นและเกินความจำเป็น
สิ่งที่คุณสามารถทำได้คือใช้โมดูลDevelเพื่อสร้างรีจิสตรีของธีมของคุณใหม่ทุกครั้งที่โหลดซ้ำ เมื่อติดตั้งแล้วให้ไปที่การกำหนดค่า→การพัฒนา→การตั้งค่า Devel ที่นั่นให้ทำเครื่องหมาย "สร้างชุดรูปแบบรีจิสตรีบนทุก ๆ หน้าโหลด" และกดปุ่ม "บันทึกการกำหนดค่า" จำไว้ว่าให้ยกเลิกการเลือก (หรือดีกว่าปิดใช้งาน Devel ทั้งหมด) เมื่อคุณพัฒนาเสร็จแล้ว
คุณสามารถแทนที่แบ็กเอนด์แคชเริ่มต้นเป็นอันที่ไม่ได้ทำอะไรเลย เพียงเพิ่มไฟล์นี้ลงในไฟล์ settings.php ของคุณ:
if (!class_exists('DrupalFakeCache')) {
$conf['cache_backends'][] = 'includes/cache-install.inc';
}
// Default to throwing away cache data.
$conf['cache_default_class'] = 'DrupalFakeCache';
// Rely on the DB cache for form caching - otherwise forms fail.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
เพื่อให้แน่ใจว่ากำหนดเวลาหมดอายุแคชเป็นไม่มีในหน้าประสิทธิภาพ
จริง ๆ แล้วฉันใช้สิ่งนี้ในไฟล์ settings.local.php ซึ่งหากมีอยู่จะถูกรวมไว้ที่ด้านล่างของไฟล์ settings.php ของฉันเพื่อให้ฉันสามารถซิงค์ settings.php จากสภาพแวดล้อมแบบสดหรือแบบ staging ไปยังสภาพแวดล้อม dev โดยไม่ต้องกังวล เกี่ยวกับการใช้การตั้งค่าฐานข้อมูลผิด, ผลักดันการตั้งค่า dev เป็น live โดยไม่ตั้งใจ
settings.php:
if (file_exists(__DIR__ . '/settings.local.php')) {
require_once __DIR__ . '/settings.local.php';
}
$conf['cache_class_cache_metatag'] = 'DrupalFakeCache';
คุณไม่สามารถเปิดการแคชทั้งหมดได้อย่างสมบูรณ์ และถ้าคุณไม่ได้จริงก็จะชะลอตัวลงคืบหน้าของคุณเพื่อให้มากขึ้น พิจารณาเวลาที่ใช้จริงล้างแคชนั่นคือสิ่งที่ทุกหน้าโหลดจะเป็นอย่างไร
มี hooks จำนวนมากที่ใช้สำหรับสร้างข้อมูลเกี่ยวกับเอนทิตีที่มีอยู่, ฟิลด์, แบบฟอร์ม, hooks ที่ใช้งานและอื่น ๆ ที่ต้องการดำเนินการเพียงครั้งเดียวในขณะนี้คุณไม่ต้องการป้องกันมัน
เมื่อคุณคุ้นเคยกับ Drupal คุณจะได้เรียนรู้สิ่งที่ต้องการแคชที่ชัดเจนและอาจเป็นมิตรกับทางลัดเมนูผู้ดูแลระบบหรือdrush cc all
สิ่งนี้จะไม่เป็นปัญหาอีกต่อไป
วิธีการในตัวอย่างนี้คือรุ่นที่ไม่เชื่อเรื่องพระเจ้า รหัสสำหรับ Drupal 7
https://stackoverflow.com/questions/4436496/drupal-disable-css-cache/41776131#41776131