1

Microsoft.AspNet.Web.Optimization パッケージの新しいバンドル機能と縮小機能を使用して、.NET 4.5 で実行される ASP.NET Web フォーム アプリケーションを取得しました。

ここまでは、バンドルが 1 つだけの非常にシンプルなセットアップです。

BundleConfig.cs

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/send").Include(
        "~/scripts/GrowingInput.js", 
        "~/scripts/textboxlist/TextboxList.js",
        "~/scripts/textboxlist/TextboxList.Livesearch.js",
        "~/scripts/combobox/ui.combobox.js",
        "~/scripts/jquery-ui-timepicker.js",
        "~/scripts/msp.send.js"));
}

Global.asax

protected void Application_Start(object sender, EventArgs e)
{
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

送信.aspx

<%: Scripts.Render("/bundles/send") %>

<script src="/bundles/send"></script>これは、web.config で debug が true に設定されているか false に設定されているか を無視して、常に Web ブラウザーでレンダリングされます。

BundleTable.EnableOptimizations = false;バンドルを強制的にオフにするために BundleConfig.cs に追加しようとしましたが、これは違いはありません。

MVC サイトと同じように次の作業を行うことを検討しています (Microsoft のドキュメントでは、Web フォームも同じであることが示唆されているようです)。

  1. デバッグ フラグでオン/オフを切り替えるためのバンドルを取得します
  2. バージョン管理のために、キャッシュバスティング ?v=xxx クエリ文字列を追加します。
4

1 に答える 1

7

バンドル パスは ~ で始まる必要がありますが、Scripts.Render メソッドはバンドルに限定されないため、単に URL をローカル リソースとして扱います (URL がバンドルかどうかを判断するために BundleTable.Bundles.GetBundleFor(path) を使用します)。

これを機能させるには、次のように ~ を追加するだけです。 <%: Scripts.Render("~/bundles/send") %>

于 2012-09-27T22:39:02.993 に答える