डी 7 के लिए बेस्ट सीएसएस और जेएस एकत्रीकरण / न्यूनतम रणनीति


8

Drupal 6 में कमाल का एडवांटेज मॉड्यूल है, जो समझदारी से सीएसएस और जेएस को बांधने का कमाल करता है , लेकिन वर्तमान में कोई D7 रिलीज नहीं हुआ है।

मैं क्या हासिल करना चाहता हूँ:

  • कम सीएसएस और जेएस फाइलें (5 सीएसएस और 5 जेएस फाइलें बहुत अधिक है)
  • जेएस फाइलों में न्यूनतमकरण होता है (वर्तमान में सीएसएस के लिए केवल कोर ही ऐसा करता है)

क्या एक ड्रुपल 7 समाधान है जो यहां मदद करेगा? इसे अनुकूलित करने के साथ अन्य लोगों के अनुभव क्या हैं?


संपादित करें: प्रश्न मूल रूप से 2011 में पोस्ट किया गया था। अब एडवाग की एक बहुत ही स्थिर डी 7 रिलीज है ।

जवाबों:


12

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

यदि आप सब कुछ एक विशाल समुच्चय में लाना चाहते हैं, तो मैंने कुछ नमूना कोड के साथ एक लेख लिखा है :

/**
 * Implements hook_js_alter().
 */
function mymodule_js_alter(&$javascript) {
  uasort($javascript, 'drupal_sort_css_js');
  $i = 0;
  foreach ($javascript as $name => $script) {
    $javascript[$name]['weight'] = $i++;
    $javascript[$name]['group'] = JS_DEFAULT;
    $javascript[$name]['every_page'] = FALSE;
  }
}

/**
 * Implements hook_css_alter().
 */
function mymodule_css_alter(&$css) {
  uasort($css, 'drupal_sort_css_js');
  $i = 0;
  foreach ($css as $name => $style) {
    $css[$name]['weight'] = $i++;
    $css[$name]['group'] = CSS_DEFAULT;
    $css[$name]['every_page'] = FALSE;
  }
}

Drupal.org अंक # 1034208 भी सख्त आदेश आवश्यकताओं को थोड़ा आराम करने का प्रस्ताव करता है।


विशाल समुच्चय सही व्यवहार का उत्पादन करने के लिए नहीं लगता था, यह वास्तव में पृष्ठ के लिए 1 बड़ी सीएसएस / जेएस फ़ाइल बना देगा, लेकिन यह फ़ाइल आपके द्वारा जारी किए गए पृष्ठ के आधार पर बदल जाएगी। यह स्पष्ट रूप से आदर्श से कम है।
wiifm

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

1
यदि 3 समूह हैं, तो सिर में 5 फाइलें कैसे लोड की जा सकती हैं? 3 से अधिक क्यों नहीं? 1 फ़ाइल में सब कुछ टकटकी लगाना जाहिरा तौर पर एक भयानक विचार है, लेकिन जेएस फ़ाइलों को एक नकल के लिए कैसे रखा जाए?
रुडी

मैंने उस कोड का प्रयास किया है जिसका उल्लेख यहां किया गया है। वास्तव में यह मेरे लिए दो संकुचित js फाइलें बनाता है। मैं इसे एक js फ़ाइल कैसे बना सकता हूँ?
अरुण

@DylanTack मेरी वेबसाइट में से एक को सीएसएस फ़ेल्स लोड करने में समस्या है [ drupal.stackexchange.com/questions/128649/… और वेबसाइट का पता [ Living.md/] मैं अपना कोड डालने के लिए कहां भटक रहा था, और क्या मैं आपके कोड का उपयोग कर सकता हूं एडवाग मॉड्यूल?
यम

3

AdvAgg D7 को विकसित किया जा रहा है। अन्य विकल्प (शामिल उद्धरण उनके परियोजना पृष्ठों से हैं):

... uglify.js के साथ साइट जावास्क्रिप्ट के ऑन-द-फ्लाई मिनिफिकेशन की अनुमति देता है। मॉड्यूल एक वेब सेवा (uglify.me) पर निर्भर करता है, ताकि आप minification जावास्क्रिप्ट का लाभ उठा सकें इसके लिए आपको अपने सर्वर पर कोई पूर्व-प्रसंस्करण करने की आवश्यकता नहीं है।

... एक साइट में सामने के अंत के प्रदर्शन को गति देने में मदद करने के लिए डिज़ाइन किया गया। स्पीडी मॉड्यूल की इस पहली रिलीज में यह कोर जावास्क्रिप्ट फ़ाइलों के लघु संस्करण प्रदान करता है जो पहले से ही खनन नहीं किए गए हैं। उदाहरण के लिए, drupal.js का एक संक्षिप्त संस्करण प्रदान किया गया है, जबकि jquery.js (पहले से ही सत्यापित) नहीं है।


AdvAgg 7.x अब अपने पहले RC पर है। drupal.org/project/advagg इसका उपयोग करने की सलाह देते हैं
mikeytown2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.