अप्रचलित संचित सीएसएस / जेएस को कैसे संभालें / सफाई करें?


17

मैं केवल CSS 7 / JS एकत्रीकरण में निर्मित Drupal 7 का उपयोग कर रहा हूँ, हालाँकि फ़ाइलें फ़ोल्डर जहाँ css.gz और js.gz फाइलें लाइव हैं वे काफी तीव्र गति से भर रहे हैं, और जब मुझे यकीन है कि यह थोड़ी देर हो जाएगी इससे पहले कि यह पूरी तरह से ड्राइव को भरने लगे, अब किसी भी समय स्थिति को संभालने के लिए उतना ही अच्छा है।

  • / Js में वर्तमान फ़ाइल संख्या 335 है
  • / Css में वर्तमान फ़ाइल संख्या 451 है

क्या इस स्थिति से निपटने के लिए कोई मानक तरीका है जो मुझे नियोजित होना चाहिए? मैं एक ऐसे उपाय को पसंद करूंगा जो ड्रूपल को लूप में रखता है।

इसके अतिरिक्त, मैं देख रहा हूँ कि कई gz फाइलों में गैर-gz समकक्ष होते हैं। क्या कोई कारण है। दोनों .css और .css.gz फ़ाइलें रखी जाती हैं! विचलन शायद?

धन्यवाद


क्या आप पुष्टि कर सकते हैं कि क्रोन चल रहा है?
mpdonadio

यह निश्चित रूप से है
दानह

जवाबों:


16

यह वास्तव में डिज़ाइन द्वारा है ताकि पुराने संस्करणों के साथ कैश किए गए पृष्ठ टूट न जाएं। इस बंद मुद्दे को देखें ।

TL; DR: 30 दिनों के बाद (या जो भी आपके drupal_stale_file_thresholdचर को सेट किया गया है) वे स्वचालित रूप से हटाए जाएंगे drupal_clear_css_cache()और उनके माध्यम से बनाए गए थे drupal_clear_js_cache()। इसलिए समाधान drupal_stale_file_thresholdडिफ़ॉल्ट 30 दिनों की तुलना में कुछ कम करने के लिए मूल्य को संशोधित करने के लिए है।

  • पुरानी फाइलें कब हटाई जाती हैं

    लुकअप वैरिएबल को खाली करने पर पुरानी कैश फाइल्स को तुरंत डिलीट नहीं किया जाता है, बल्कि ड्रूपल_डेलेटी_फाइल_इफ_स्टेल () द्वारा एक निर्धारित अवधि के बाद डिलीट कर दिया जाता है। यह सुनिश्चित करता है कि कैश्ड पृष्ठ द्वारा संदर्भित फाइलें अभी भी उपलब्ध रहेंगी।

drupal_delete_file_if_stale() डिफॉल्ट्स 30 दिनों के लिए - इसलिए यदि ए) क्रोन ठीक से चल रहा है और बी) आपको 30 दिनों से अधिक पुरानी फाइलें दिखाई देती हैं, तो आपको एक अलग समस्या है।

variable_get('drupal_stale_file_threshold', 2592000)30 दिन की जांच है। variable_set('drupal_stale_file_threshold', 172800)समयसीमा को दो दिन में बदल देगा। ऐसी साइट पर जहां कैश हैंडलिंग को सख्ती से नियंत्रित किया जाता है, समय भी कम हो सकता है।

स्रोत: http://api.drupal.org/api/drupal/includes -common.inc/function/drupal_build_css_cache/7 अधिक जानकारी
के drupal_delete_file_if_stale()लिए देखें ।

  • क्या कोई कारण है। दोनों .css और .css.gz फ़ाइलें रखी जाती हैं!

    यदि CSS gzip कम्प्रेशन को सक्षम किया जाता है, तो स्वच्छ URL सक्षम होते हैं (जिसका अर्थ है कि नियम फिर से काम कर रहे हैं) और zlib एक्सटेंशन उपलब्ध है तो इस फ़ाइल का एक gzipped version बनाएं। यह फ़ाइल उन ब्राउज़रों को सशर्त रूप से दी जाती है जो .htaccess नियमों का उपयोग करके gzip को स्वीकार करते हैं।

स्रोत: http://api.drupal.org/api/drupal/includes -common.inc/function/drupal_build_css_cache/7 (फ़ंक्शन टिप्पणियों में)

यह भी देखें drupal_build_js_cache()कि यह लगभग समान है drupal_build_css_cache()


धन्यवाद, मुझे थोड़ा आलस महसूस हो रहा है कि अब यह खुद नहीं देखा;)
क्लाइव

0

4 साल बाद, मुझे पहले जवाब से असहमत होना होगा, जहां लेखक कहता है:

"यह सुनिश्चित करता है कि कैश्ड पृष्ठ द्वारा संदर्भित फाइलें अभी भी उपलब्ध रहेंगी।"

हो सकता है कि पुरानी फ़ाइलों के एकत्रीकरण प्रावधान में कुछ चीजों को बदल दिया गया हो / अनुकूलित किया गया हो, लेकिन अगर मैं फ़ाइलों / advagg_js (जो मैं स्पष्ट रूप से अभी भी अपने एक ब्राउज़र में उपयोग करता हूं) में सर्वर पर मैन्युअल रूप से एक पुरानी फ़ाइल को हटा देता हूं, तो बाद वाला पृष्ठ पुनः लोड हो रहा है हाल ही में जोड़े गए जावास्क्रिप्ट स्रोत कोड के साथ फिर से वही फ़ाइल, जैसे drupal_build_js_cache()कि उस एकत्रित फ़ाइल नाम पर निष्पादित की गई थी।

जैसे। js__22qMV1d_G25luSFBkuR7bIuKD5FE80eKuXx6ldibEixg__yjA2JTeF2f1LUJ3PMdjMr8k9nOPZQJIcvVw-c5Gz_yc__FY0NTHFBVMd9MIGE5srDXTejEZGP-ccSH7UX2zImN-0.js

इसलिए मैं एक महत्वपूर्ण निचली सेटिंग को समाप्त कर रहा हूं drupal_stale_file_threshold, इससे कोई समस्या नहीं होगी, और यहां तक ​​कि कैश के बाद सभी एकत्रित फ़ाइलों को हटाने से एग्रीगेट्स का पुन: उत्थान होगा (परीक्षण और पृष्ठ लोड पर काम करने की पुष्टि की गई)


-5
  • नियम मॉड्यूल प्राप्त करें
  • एक नया नियम जोड़ें जो क्रोन चलने पर निष्पादित किया जाएगा
  • एक कार्रवाई के रूप में php कोड निष्पादित करें का चयन करें।
  • Php कोड लिखे

कुछ इस तरह हो सकता है:

$dir = 'your/directory/';
  foreach(glob($dir.'*.*') as $v){
  unlink($v);
}

ये php फ़ंक्शन आपको कोड को संशोधित करने में मदद कर सकते हैं जैसे आप चाहते हैं।

इसे निष्पादित करने से पहले बहुत सावधान रहें! यदि सही उपयोग नहीं किया गया तो आप अपनी साइट को हटा सकते हैं! इस कोड को आज़माने से पहले इसे एक लोकलहोस्ट पर टेस्ट करें

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