MVC4 でバンドルと縮小のサポートを実装していますが、JavaScript ファイルがバンドル/縮小されていない場合よりも大きくなっているように見えます。nuget で利用可能な最新のビルドを使用しています (プレリリース オプションがオン)。RegisterBundles クラスに次のバンドルを設定しました。
bundles.Add(new ScriptBundle("~/bundles/baseJS").Include(
"~/Scripts/jquery-1.7.1.js",
"~/Scripts/jquery.cookie.js",
"~/Scripts/jquery-ui-1.8.11.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.pjax.js",
"~/Scripts/kendo/2012.1.515/js/kendo.all.min.js",
"~/Scripts/jquery.jstree.js",
"~/Scripts/jquery.unobtrusive-ajax.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.unobtrusive.js",
"~/RIS.Scripts/PostJson.js"));
そして、私はそれを私の _Layout.cshtml にロードしています
@Scripts.Render("~/bundles/baseJS")
デバッグ モードでこれらのスクリプトの Fiddler で受信したバイト数を合計すると、次のようになります。
Name Size(bytes)
jquery 98013
jquery cookie 1455
jquery ui 124704
bootstrap 52378
pjax 8138
kendo.all 219751
jstree 55045
unobtrusive-ajax 2492
validate 13323
validate-unobtrusive 5138
postjson 634
Total 581071
そして、本番サーバーで実行すると、js バンドル全体のフィドラーから次のようになります。
Bytes Received: 999,396
ここで何が起こっているのですか?ほとんどのファイルはある程度縮小されていますが、ペイロードのサイズがほぼ 2 倍になることはありません。
追加の詳細 - ローカルの開発ボックス (フィドラーはサイズ 379kb を報告) とサーバー (フィドラーはサイズ 999kb を報告) から js ファイルをダウンロードし、それらを kdiff に入れると、バイナリは同一です。Chrome の開発者ツールのネットワーク タブを見ると、ローカル サーバーは 379kb をダウンロードしますが、「パーサー」の値は 975kb です。このパーサー値は何ですか。私のサーバーには設定されていないが、私のローカル IIS サーバーには設定されている IIS 圧縮設定があるのでしょうか? 私が注目している唯一の違いは、開発マシンで実行している IIS Express が 8.0 で、サーバーが IIS 7.5 であるという事実です。