modest violet

modest violet

開発者としてのあれこれや、日々の雑記など

your future hasn't written yet. no one's has.
by Emmett Lathrop "Doc" Brown

【ASP.NET MVC】BundleConfigを3点ほど勘違いしていたのでまとめ

f:id:shin21sk:20160809182709p:plain

 ASP.NET MVCには「BundleConfig」という便利な機能があります。これは「バンドル&ミニフィケーション」といってCSSJavaScriptなど複数に分かれているファイルを一つのファイルにまとめてくれる機能(バンドル)と空白や不要な文字を削除してファイルサイズを小さくしてくれる機能(ミニフィケーション)を行ってくれるナイスなやつなのです。

自動的にminファイルを選んでくれる

CSSファイルには、本体となるファイルと余分な空白などを除去した.minファイルというものがあります。今までリリース前にはBundleConfig内の設定を手動で.minの方に変更していたのですが、どうやら自動で.minを選んでくれるそうなのです。

デバッグ環境では「無効」になっている

 初めてリリース環境にビルドして気づいたのは、「デバッグ環境では、BundleConfigは機能していない」という事です。各ページにBundleConfigで設定したCSS等が出力されていたので、てっきり機能しているものと思い込んでいました。リリース環境と同じようにBundleConfigを有効にするには、下記のいずれかを設定します。

Web.Config で設定

下記の記述をコメントアウトするか、falseに設定します。

<system.web>
    <compilation debug="true" targetFramework="4.5.2" />
</system.web>
BundleConfig.cs に記述

BundleTable.EnableOptimizations = true を記述する。

public class BundleConfig
{

    public static void RegisterBundles(BundleCollection bundles)
    {

        ~中略~

        BundleTable.EnableOptimizations = true;

    }

}

CDNを優先して使う

 jQueryなどのようにCDNで圧縮済みのファイルが提供されている場合は、そちらを利用する方が速度面や可用性においても良いようです。


以上、勘違いしていた3点でした。