Drupal 6には、CSSとJS をインテリジェントにバンドルするという素晴らしい仕事をする素晴らしいadvaggモジュールがありますが、現在のところD7リリースはありません。
私が達成しようとしているのは:
- CSSファイルとJSファイルが少ない(5つのCSSファイルと5つのJSファイルは多すぎる)
- JSファイルは縮小化されています(現在、CSSではコアのみがこれを実行します)
ここで役立つdrupal 7ソリューションはありますか?これを最適化した他の人の経験は何ですか?
Drupal 6には、CSSとJS をインテリジェントにバンドルするという素晴らしい仕事をする素晴らしいadvaggモジュールがありますが、現在のところD7リリースはありません。
私が達成しようとしているのは:
ここで役立つdrupal 7ソリューションはありますか?これを最適化した他の人の経験は何ですか?
回答:
D7には、サイトに関する実際の統計に基づいて集計する学習モードを持つコアライブラリがあります。
すべてを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でも、厳密な注文要件を少し緩和することを提案しています。
AdvAgg D7は開発中です。その他のオプション(含まれている引用はプロジェクトページからのものです):
... uglify.jsを使用して、サイトのJavaScriptをその場で縮小できます。モジュールはデフォルトでWebサービス(uglify.me)に依存して縮小を実行するため、縮小JavaScriptのメリットを享受するためにサーバーで前処理を行う必要はありません。
...サイトのフロントエンドパフォーマンスを高速化するように設計されています。Speedyモジュールのこの最初のリリースでは、まだ縮小されていないコアJavaScriptファイルの縮小バージョンを提供します。たとえば、drupal.jsの縮小版は提供されますが、jquery.js(すでに縮小版)は提供されていません。