web-dev-qa-db-ja.com

D7に最適なCSSおよびJS集約/縮小戦略

Drupal 6には素晴らしい advagg モジュールがあり、CSSとJSをintelligentlyバンドルするという素晴らしい仕事をしますが、現在D7リリースはありません。

私が達成しようとしているのは:

  • cSSファイルとJSファイルが少ない(5つのCSSファイルと5つのJSファイルは多すぎる)
  • JSファイルには縮小機能があります(現在、CSSの場合はコアのみがこれを実行します)

ここで役立つdrupal 7ソリューションはありますか?これを最適化した他の人の経験は何ですか?


編集:質問は最初に2011年に投稿されました。現在、非常に安定したD7リリース advagg があります。

8
wiifm

D7には Core Library があり、サイトに関する実際の統計に基づいて集計する学習モードがあります。

すべてを1つの巨大な集合体に総当たりしたい場合は、いくつかのサンプルコードを使って 記事を書いた を作成しました。

/**
 * 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 は、厳密な順序付け要件を少し緩和することも提案しています。

12
Dylan Tack

AdvAgg D7は開発中です。その他のオプション(含まれている引用はプロジェクトページからのものです):

... uglify.jsを使用して、サイトのJavaScriptをその場で縮小できます。モジュールはデフォルトでWebサービス(uglify.me)に依存して縮小を実行するため、縮小JavaScriptのメリットを享受するためにサーバーで前処理を行う必要はありません。

...サイトのフロントエンドパフォーマンスを高速化するように設計されています。 Speedyモジュールのこの最初のリリースでは、まだ縮小されていないコアJavaScriptファイルの縮小バージョンを提供します。たとえば、drupal.jsの縮小版は提供されますが、jquery.js(すでに縮小版)は提供されていません。

3
mikeytown2