2013-03-14 19 views
8

grailsアプリケーションでjsとcssファイルを縮小する作業を進めています。私の元の計画は、リソースプラグインを使用してリソースを縮小することです(また、jawrとperformance-uiを見ていましたが、リソースは現時点では事実上標準的なようです)。grailsアプリケーションでjsとcssを縮小する方法

リソースでは、YUIを使用して個々のCSSファイルを簡単に縮小できますが、40個以上のJSファイルを1つのファイルに連結します(ファイルを正しい順序で連結する必要があります)私は、これらは、我々がこれまでに計画しているアプローチは、資源が箱から出して、これをサポートしていることを示唆しているものを見ていない:

  1. は新しいJSを作成するためのjsとcssファイルを連結するためのtaglib Grailsと1を追加します。 cssファイルを開き、リソースプラグインを使用して縮小します。素朴な実装は、ページが提供されるたびにyui-minifyが実行されることを意味します(!!)ので、何らかの形でキャッシュをインジェクトする必要があります。

  2. BuildConfigのgrails.war.resourcesを使用してjsとcssを小さくします。ビルド時にはリソースがビルドされミニネーム化されるため、キャッシュ問題を回避することができますが、ローカルでテストするにはgrails run-warを使用する必要があります。したがって、minification関連のエラーは、サイクル。

これはかなり一般的な問題であるに違いありません。他の人たちは何をしていますか?私が使用できる他のアプローチやベストプラクティスについて聞きたいと思います。

答えて

1

同じバンドルを使用してすべてのリソースを作成できます。これにより、1つのマージされたjsだけが作成されます。例:ドキュメントによると

main { 
    resource id: 'mainjs', url: 'js/main.js' 
    defaultBundle: 'mybundle' 
} 

second { 
    resource id: 'secondjs', url: 'js/second.js' 
    defaultBundle: 'mybundle' 
} 

「バンドル」マッパーは、クライアント・ページが要求したファイルの 数を減らすために一緒に同じタイプのリソースを追加します。

"bundle"マッパーは リソースの "bundle"プロパティの値を調べ、見つかった場合は、リソースを新しい合成 集約リソースに追加します。

この集約されたリソース自体はマッパーで処理されるため、 のリソースの種類に適用されるその他の最適化の対象となるのは、 です。

バンドルは常にスタティックリソース フォルダのベースディレクトリにあります。つまり、バンドル内のファイルへの参照は、同じファイルを参照し続けるように再調整された である必要があります。これは、csspreprocessorとcssrewriterマッパーによってCSSファイルに対して可能なのは です。

関連する問題