D7 için en iyi CSS ve JS toplama / küçültme stratejisi


8

Drupal 6 müthiş vardır advagg müthiş bir iş yok modülü, akıllıca bundling CSS ve JS, ancak şu anda hiçbir D7 sürümü.

Ne elde etmek için arıyorum:

  • daha az CSS ve JS dosyası (5 CSS ve 5 JS dosyası çok fazla)
  • JS dosyalarının küçültülmesi var (şu anda çekirdek bunu yalnızca CSS için yapıyor)

Burada yardımcı olacak bir drupal 7 çözümü var mı? Diğer insanların bunu optimize etme konusundaki deneyimleri nelerdir?


Edit: Soru aslında 2011 yılında gönderildi. Şimdi advagg çok istikrarlı bir D7 sürümü var .

Yanıtlar:


12

D7 için, sitenizle ilgili gerçek dünya istatistiklerini temel alan bir öğrenme moduna sahip olan Çekirdek Kütüphanesi var .

Her şeyi tek bir dev kümeye zorlamak istiyorsanız , bazı örnek kodlarla bir makale yazdım :

/**
 * 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 sorunu # 1034208 ayrıca sıkı sipariş gereksinimlerinin hafifçe hafifletilmesini önermektedir.


Dev agrega doğru davranışı üretmiyor gibi görünüyordu, gerçekten sayfa için 1 büyük CSS / JS dosyası yapardı, ancak bu dosya bulunduğunuz sayfaya bağlı olarak değişecektir. Bu kesinlikle ideal olandan daha az.
wiifm

Tam olarak doğru, her sayfa farklı JS dosyaları yüklüyorsa, toplamın mutlaka farklı olması gerekir. Drupal 7'nin dosyaları işlevsel gruplara ayırma nedenini yeni keşfettiniz (JS_LIBRARY, JS_DEFAULT ve JS_THEME). Karmaşık sitelerle bu genellikle bir dev dosyadan daha verimlidir.
Dylan Tack

1
3 grup varsa, kafasına 5 dosya nasıl yüklenebilir? Neden asla 3'ten fazla olmasın? Her şeyi 1 dosyada bir araya getirmek görünüşte korkunç bir fikir, ancak JS dosyalarını nasıl minimum tutabilirsiniz?
Rudie

burada belirtilen kodu denedim. Aslında benim için iki sıkıştırılmış js dosyası oluşturuyor. Nasıl bir js dosyası yapabilirim?
ARUN

@DylanTack web sitemden biri css fiels [ drupal.stackexchange.com/questions/128649/… ve web sitesi adresini [ living.md/] yükleme konusunda sorun yaşıyor Kodunuzu nereye koyacağımı dolaşıyorum ve kodunuzu birlikte kullanabilir miyim advagg modülü?
Yama

3

AdvAgg D7 geliştirilmektedir. Diğer seçenekler (alıntılar proje sayfalarından alınmıştır):

... uglify.js ile site JavaScript'inin anında küçültülmesine olanak tanır. Modül, minimize etmek için varsayılan olarak bir web hizmetine (uglify.me) dayanır; böylece, küçültülmüş JavaScript'in avantajlarından yararlanmak için sunucunuzda herhangi bir ön işleme gerek yoktur.

... bir sitedeki ön uç performansını hızlandırmak için tasarlanmıştır. Speedy modülünün bu ilk sürümünde, çekirdek JavaScript dosyalarının küçültülmüş hali henüz küçültülmemiş sürümlerini sağlar. Örneğin, drupal.js'nin küçültülmüş bir sürümü sağlanırken jquery.js (zaten küçültülmüş) verilmez.


AdvAgg 7.x şimdi ilk RC'sinde. drupal.org/project/advagg Tavsiye et
mikeytown2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.