回答:
YUIを使用して出力を圧縮、連結、およびキャッシュするAsp.Netのハンドラーを作成しました。
ここにソースがあります:http : //gist.github.com/130913
私はすでに別の質問でこの問題に取り組んでいます
後から考えてみると、プログラマーサイトではなく、ウェブマスターに質問する必要がありました。
次の3つのオプションがあります。
オプション1(CakePHP拡張機能を使用):
AssetPackerをダウンロードして、サイトにインストールします(jsminとCSSTidyも必要です)。jsファイルを含む数行のソースを変更します。洗浄->すすぎ->繰り返し。出来上がり、残りは自動的に行われます。
他のフレームワークを使用している場合、可能性としては、これを実現するツールがあります。webdevの世界ではかなり一般的な要件です。
オプション2(Apache modを使用):
Apache用のGoogle Pagespeed modをご覧ください。それはあなたが説明するすべてを実行します。
ただし、運用サーバーのリソースを監視してください。一部の人々は、これがサーバーの負荷をひどく増加させるという問題を見てきました。私は前向きではありませんが、効果的なオプションとして十分な静的コンテンツ戦略が必要な場合があります。
オプション3:
本当に必要な場合は、JSファイルサーバー側を連結し、すべてのリンクrelを1つに結合するPHPマジックを作成できます。
個人的には、このオプションには強くお勧めします。
私が知る限り、SprocketsはAssetPackerと同じようにJSファイルを連結し、Ruby Gemとして実装されています。しないのは、jsコードを縮小することです。そのため、使用する場合は、おそらくjsmin gemも取得することをお勧めします。CakePHPでSprockets + JSMinを使用する方法については、こちらをご覧ください。
CakePHPに重点を置いていることは知っていますが、プラグインをCakePHPに適合させることができれば、それを別のフレームワークに適合させるのは簡単なはずだと思います。
簡単なグーグル検索では、これを見つけてCSSファイルを結合します:http : //www.tothepc.com/archives/combine-merge-multiple-css-files/
ASP.NETプロジェクトの場合、Karl Seguinの指示に基づいて、ビルドプロセスの一部にしました。
カールは彼のブログで最もよく説明していますが、短いバージョンはYUICompressorをラップするコンソールアプリをセットアップすることです。次に、ビルド後タスクを設定して、サイトのJSファイルの場所に対してそのコンソールアプリを呼び出すことができます。
WebアプリケーションがPHPにある場合、minifyの使用を検討する必要があります。
複数のCSSまたはJavascriptファイルを結合し、不要な空白とコメントを削除し、gzipエンコーディングと最適なクライアント側キャッシュヘッダーを提供します。
このためには、Pythonが実際に役立つことがあります。Pythonをすぐに習得できます。私は約2週間前に始めましたが、私の最初のアプリケーション(まだ終了していません)は、あなたが望むものとまったく同じことをします。DotLessコンパイラと同様に、ファイルまたはディレクトリを調べるウォッチ機能があり、それらが変更されると新しいファイルが生成されます。
Pythonは他のメンテナンスタスクにも最適であり、多くのシステム管理者がPythonを使用することを好みます。
私が作成したMinifpyのPythonを使ってJSとCSSファイルをマージし、縮小化するのpython3でwritedツール(Mac OSでは、WindowsとLinuxの互換性を):。
Minifpyは非常に簡単なJSON構成ファイルを使用して、どのファイルをマージ、縮小、または縮小する必要があるかを定義します。
{
"js": {
"minify_files": [
{"from": "static/file.js", "to":"static/file.min.js"},
],
"merge_files": [
{"from" : ["static/file1.js", "static/file2.js"], "to":"static/public.js", "to_min": "static/public.min.js"}
]
},
"css" : {
"minify_files": [
{"from": "static/file.css", "to":"static/file.min.css"},
],
"merge_files": [
{"from" : ["static/file1.css", "static/file2.css"], "to":"static/public.css", "to_min": "static/public.min.css"}
]
}
}
CLIでこのツールを使用することもできます。
MinifpyはJS / CSSファイルの変更を検出し、それらを自動的にマージ/縮小します(開発に役立ちます)。