1

MVC4 のバンドル システムにデバッグ モードでのみスクリプト/スタイルを含める方法はありますか?

たとえば、システムのデバッグに役立つ多くのデバッグ モード スクリプトがあります。システムがリリース モードのときに、それらをレンダリングしたくないのは明らかです。

次のようなブロックを使用することを考えました:

  bundles.Add(
    new ScriptBundle("mybundle")
    .Include(
      "~/scripts/foo.js",
      "~/scripts/bar.js"
      #if DEBUG
      ,"~/scripts/baz-debug.js"
      #endif
    )
  );

ただし、デバッグ モードは で制御する必要がありますweb.config

では、正しいアプローチは何ですか?

4

1 に答える 1

3

デバッグが有効になっているかどうかを確認するには、これを使用できます。

HttpContext.Current.IsDebuggingEnabled

HttpContext にアクセスできる場合。そうでない場合、より長いアプローチは次のようになります。

var isDebug =(System.Web.Configuration.CompilationSection)ConfigurationManager.GetSection("system.web/compilation").Debug;

これらの提案は両方とも、この記事から来ています: How do I check if Debug is enabled in web.config .

実際にモジュールを条件付きで追加するにはDictionary<string, bool>、スクリプト パスの作成と、それらをリリース モードで追加する必要があるかどうかから始めます。

プログラムを呼び出すときに、debugging が false の場合は、単に辞書を要素のコレクションにフィルター処理します。

var includes = dict.Where(x => x.Value).Select(x => x.Key);

そして、結果をIncludeステートメントに渡します。

于 2012-12-12T13:30:09.947 に答える