web-dev-qa-db-ja.com

ASP.netバンドラーは自動的にファイルを縮小しますか?

私はASP.net MVC 4。を使用しています自動的に縮小されますか?たとえば、私のバンドルは次のようになりますか?

        bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
            "~/Scripts/jquery-masked.js"
            "~/Scripts/jquery.idletimer.js"
            ));

または、代わりに最初に縮小ファイルを含める必要があります。

        bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
            "~/Scripts/jquery-masked.min.js"
            "~/Scripts/jquery.idletimer.min.js"
            ));

??

編集: .minファイルをバンドルすると、代わりに最適化が追加されるのではないかと考えています。基本ファイルの代わりにバンドル内の.minファイルを含めて、パフォーマンスが向上しますか? (たぶん「縮小機能」は時間がかかるのでしょうか?)

25
AlbatrossCafe

Asp.Netバンドラーは、同じバンドル内のすべてのスクリプトを1つの単一のファイルにバンドルします。バンドルで定義された順序でリストされています。次に、この単一のファイルが縮小され、クライアントに配信されます。

スクリプトディレクトリにスクリプトの通常バージョンと縮小バージョンの両方を含めると、バンドルセッションはデバッグセッション中に完全なスクリプトを自動的にデプロイし、本番バージョン中に縮小バージョンを自動的にデプロイします。デバッグセッションに展開された縮小バージョンが必要でない限り、バンドル構成でスクリプトの縮小バージョンを参照しないでください。

24
Claies

縮小されたファイルを含める必要はありません。これはバンドルエンジンによって自動的に行われます。実際、縮小したファイルを含めると問題が発生したことを覚えています(多分これは最新のmvcバージョンで修正されています)

最適化(バンドルと縮小)はweb.configで_debug=false_が実行されたときにのみ実行されるため、これは機能していないと思われるかもしれません。

_<system.web>
     <compilation debug="false" />
</system.web>
_

_debug = true_を使用して_BundleTable.EnableOptimizations_を実行する場合でも、最適化を強制する方法があります。ここに例があります

_public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                 "~/Scripts/jquery-{version}.js"));

    BundleTable.EnableOptimizations = true;
}
_
26
Claudio Redi

これらは、バンドルとミニファイと呼ばれる2つの異なる用語です。
Minification:変数の名前を変更してコンテンツを圧縮するJSファイルの縮小バージョンです。
同梱:まったく別のものです。ネットワークの往復を減らすには、すべてを1つのファイルに結合し、1つの要求でクライアントにダウンロードすることをお勧めします。

したがって、JSの縮小バージョンをバンドルして、この利点を得ることができます。

3
vendettamit