【ASP.NET MVC】BundleConfigを3点ほど勘違いしていたのでまとめ
ASP.NET MVCには「BundleConfig」という便利な機能があります。これは「バンドル&ミニフィケーション」といってCSSやJavaScriptなど複数に分かれているファイルを一つのファイルにまとめてくれる機能(バンドル)と空白や不要な文字を削除してファイルサイズを小さくしてくれる機能(ミニフィケーション)を行ってくれるナイスなやつなのです。
自動的に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; } }