कैशिंग को पूरी तरह से कैसे बंद करें?


26

मैं ड्रुपल 7 में एक साइट विकसित कर रहा हूं और कैशिंग मेरे काम को काफी धीमा कर देता है। उदाहरण के लिए, मेरे पास फॉर्म के लिए एक थीमिंग फ़ंक्शन था। मैं हैरान था, यह काम क्यों नहीं करता। जब तक मैंने कैश साफ़ किया और वह ठीक नहीं हो गया।

इसे पूरी तरह से बंद कैसे करें?

जवाबों:


21

थीम फ़ंक्शन को थीम रजिस्ट्री द्वारा नियंत्रित किया जाता है: एक नया थीम फ़ंक्शन चुनने के लिए आपकी साइट के सभी कैश को फिर से बनाना (या बदतर, अक्षम करना) अनावश्यक और ओवरकिल है।

आप क्या कर सकते हैं हर पृष्ठ पुनः लोड पर अपनी थीम की रजिस्ट्री के पुनर्निर्माण के लिए डेवेल मॉड्यूल का उपयोग करें । एक बार स्थापित होने के बाद, कॉन्फ़िगरेशन → विकास → डेवेल सेटिंग्स पर जाएं। वहां, "प्रत्येक पृष्ठ लोड पर थीम रजिस्ट्री का पुनर्निर्माण करें" और "कॉन्फ़िगरेशन सहेजें" बटन दबाएं। जब आप विकास के साथ हो जाए तो इसे अनचेक करें (या बेहतर तरीके से, पूरी तरह से अक्षम करें) को याद रखें।


हालांकि यह केवल थीम रजिस्ट्री है।
एंड्रयू वेल्च

2
सवाल है "इसे पूरी तरह से कैसे बंद करें?" यह इसका केवल एक हिस्सा है
सीनजा

29

आप डिफ़ॉल्ट कैश बैकएंड को एक से बदल सकते हैं जो वास्तव में कुछ भी नहीं करता है। बस इसे अपनी सेटिंग में जोड़ें। पीडीएफ फाइल:

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

बस सुनिश्चित करने के लिए, प्रदर्शन पृष्ठ पर कोई भी कैश समाप्ति समय सेट करें।

मैं वास्तव में इसका उपयोग सेटिंग्स में करता हूं। Local.php फ़ाइल, यदि यह मौजूद है, तो मेरी सेटिंग के नीचे शामिल हो जाती है। एफपी फाइल इसलिए मैं सेटिंग्स को सिंक कर सकता हूं। चिंता के बिना अपने देव वातावरण में लाइव या स्टेजिंग वातावरण से सेटिंग करें। गलत डेटाबेस सेटिंग्स का उपयोग करने के बारे में, गलती से देव सेटिंग्स को लाइव करने के लिए, आदि।

settings.php:

if (file_exists(__DIR__ . '/settings.local.php')) {
  require_once __DIR__ . '/settings.local.php';
}

4
आप प्रति बिन कैशिंग बंद करने के लिए उसी चाल का उपयोग कर सकते हैं। उदाहरण के लिए। $conf['cache_class_cache_metatag'] = 'DrupalFakeCache';
अल्फ्रेड आर्मस्ट्रांग

4
यह स्वीकृत उत्तर होना चाहिए, क्योंकि स्वीकृत केवल यह बताता है कि थीम रजिस्ट्री कैश को कैसे निष्क्रिय किया जाए और सभी कैश नहीं
mastazi

10

आप सभी कैशिंग को पूरी तरह से बंद नहीं कर सकते । और अगर आपने वास्तव में किया, तो यह आपकी प्रगति को इतना अधिक धीमा कर देगा । समय लगता है कि यह वास्तव में कैश को साफ करता है, कि हर एक पृष्ठ लोड कैसा होगा।

उपलब्ध संस्थाओं, क्षेत्रों, रूपों, कार्यान्वित हुक आदि के बारे में जानकारी के निर्माण के लिए बहुत सारे हुक चल रहे हैं, जिन्हें केवल एक बार निष्पादित करने की आवश्यकता है, आप इसे रोकना नहीं चाहते हैं।

जैसे-जैसे आप Drupal के अभ्यस्त हो जाते हैं, आप जल्द ही सीखेंगे कि किन चीजों के लिए कैश क्लियर होना आवश्यक है, और शायद एडमिन मेनू शॉर्टकट के साथ अनुकूल हो या drush cc all, और यह अब कोई समस्या नहीं होगी।


सहमत होने के बाद, जब आपको पता चलता है कि सबसे नए हुक को कैश की जरूरत है, तो इससे पहले कि वहां से इसकी चिकनी नौकायन को पहचाना जाए! :)
एलेक्स वेबर

2
ईमानदारी से कुछ महीनों के ड्रुपल विकास के बाद भी मुझे यह एक मुद्दा लगता है। मेरा मानना ​​है कि स्थानीय रूप से गति विकसित करना महत्वपूर्ण नहीं है, आपके पास समवर्ती अनुरोध भेजने वाले कई उपयोगकर्ता नहीं हैं। अधिकांश अन्य चौखटों (Django, सिम्फनी आदि) में स्थानीय रूप से विकसित होने के दौरान कैश अक्षम होना एक आसानी से उपलब्ध विकल्प है, मैं नहीं देखता कि मैं ड्रुपल में भी ऐसा क्यों नहीं कर सकता। हर दिन मेरे पास कम से कम एक उदाहरण है जिसमें कुछ काम नहीं कर रहा है और इसका कारण यह है कि मैं कैश को साफ करना भूल गया, यह वास्तव में अक्सर होता है और यह वास्तव में मुझे परेशान करता है।
मस्ताज़ी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.