私のページ構造が次のようになっているとしましょう:
1. one.html :
includes -> a.js , b.js , c.js ,d.js
2. two.html :
includes -> a.js , b.js, x.js, y.js, z.js
3. three.html :
includes -> a.js , b.js, s.js, x.js, y.js
等々。一部のページは他のページよりも訪問数が多く、3ページがWebサイトの全ページビューの99%を占めていると言います。
私は次の解決策を探しています:
i)ページに含めることができるグループ内のファイルを結合して最小化します。
ii)グループのファイル名を最終的に結合されたファイル名にマップするロジックがあります。
iii)GoogleClosureコンパイラ/YUIコンプレッサのようなミニファイアが含まれています。
私が見た解決策の1つは、 PHPの縮小です。
それのほとんどを行います。ただし、次のような欠点があります。
i)静的に結合されたファイルをPHP minifyをホストしている同じWebサーバーではなく、CDNサーバーでホストしているため、グループ名によるサーバーファイルへのPHPminifyのロジックは機能しません。
ii)PHPMinifyはPHPCGIを使用してスクリプトを処理および提供しますが、縮小したコンテンツをCDNサーバーから直接提供したいと思います。
PHP Minifyには、グループ名を結合ファイル名にマップするいくつかの関数がありますか。これをWebページで使用して、結合JSファイルのCDNパスを直接設定できます。例えば
<?php
$groupName = array("onePage" => array('a.js','b.js','c.js','d.js');
?>
<script type="text/javascript" src="http://www.MYSTATICSERVER.com/js/<?php getMergedFileName($groupName)"></script>
PHP MinifyのPHPスクリプトを呼び出してグループのファイルを取得するのではなく、これは実際にはPHPページ呼び出しであり、以前に生成されたファイルからjavascriptコンテンツを提供します。
<script type="text/javascript" src="http://www.MYWEBSERVER.com/min/?g=onePage" ></script>
(これのほとんどは、さまざまなソリューションをカスタム展開スクリプトおよびミニファイツール(ANT、FABRIC + YUICompressor / ClosureCompilerなど)と組み合わせることで実行できることに同意しますが、見逃した可能性のある十分に開発された構成可能なソリューションを探しています)