ASP.NET MVC 4のデバッグモードでバンドルとミニファイを有効にする


112

これに関する他の質問が見つからないとは信じられませんが、デバッグモードでバンドルを有効にするにはどうすればよいですか?リリースモードでどのように有効にするかは知っていますが、デバッグモードでは、バンドルを有効にする方法が見つかりません。

これは可能ですか、それとも何か不足していますか?

回答:


214

これを有効にするには、

BundleTable.EnableOptimizations = true;

RegisterBundlesメソッド内(App_StartフォルダーのBundleConfigクラス)。

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minificationを確認してください詳細については、を

web.configを変更することもできます。

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

しかし、これはデバッグモードを完全に無効にするので、最初のオプションをお勧めします。

最後に、両方の利点を最大限に活用するには、次のような#ifコンパイラディレクティブを使用します。

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif

4
これをさらに一歩進めて、カスタム構成セクションをweb.config(または、少なくともAppSettingエントリ)に追加します。これにより、再構築を行わなくても、最適化を選択的に有効/無効にすることができます。
コーダーのジョー、2014

1
または使用#if DEBUG#if !DEBUGプリコンパイラ文
リアム・

また、これは構成をオーバーライドするdebug="true"ため、この値をハードコーディングすると最適化が常に有効または無効になることに注意してください
Liam

1
または、「verbose」MVCを使用しますif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium

Web構成オプションが必要な場合は、構成ごとに複数のWeb構成をセットアップして、デバッグWeb構成がtrue、リリースがfalseになるようにすることもできます 。docs.microsoft.com/en
マシューエリソン

11

追加 BundleTable.EnableOptimizations = true;Application_Start()の方法Global.asaxファイル


-2

Global.asaxに追加 BundleConfig.RegisterBundles(BundleTable.Bundles);

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles); // add this
        }

-5

公式MSサイトの状態、それを有効にすることはできませんデバッグ中。理由は、無効になっているとデバッグが簡単になるからだと思います。アプリケーションへの影響をテストする場合<compilation debug="true" />は、Web.configで設定する必要があります

@Hebe:MSページを引用する

JavaScriptファイルはバンドルまたは縮小されていないため、開発環境(Web.configファイルのコンパイル要素がdebug = "true"に設定されている)でJavaScriptをデバッグするのは簡単です。


私の場合、バックエンドのC#コードをデバッグしたいだけで、アプリケーションのセットアップ方法により、すべてのスタイルシートとスクリプトが適切に読み込まれるように機能させるには、バンドルが必要です。
MLowijs 2013

3
@Ennosuke-デバッグの方が簡単かもしれませんが、縮小スクリプトがローカルで実行できるようにする必要がある縮小プロセスによって引き起こされるJavascriptバグが時々あります。
コーダーのジョー、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.