我有一个ASP.NET Web表单应用程序,使用Microsoft.AspNet.Web.Optimization包中新的Bundling and Minification功能在.NET 4.5上运行。
到目前为止,这是一个非常简单的设置,只需一个捆绑包。
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);
}
Send.aspx
<%: Scripts.Render("/bundles/send") %>
这始终在Web浏览器中呈现为<script src="/bundles/send"></script>
,忽略了在web.config中将debug设置为true还是false。
我尝试将BundleTable.EnableOptimizations = false;
添加到BundleConfig.cs以强制捆绑,但这没有任何区别。
希望让以下工作像在MVC网站中一样工作(Microsoft文档似乎建议Web表单应该是相同的)。
答案 0 :(得分:5)
Bundles路径必须以〜开头,但Scripts.Render方法不仅限于bundle,因此它只将url视为本地资源,(它使用BundleTable.Bundles.GetBundleFor(path)来确定url是否为一捆)
你只需添加一个〜就像这样工作:<%: Scripts.Render("~/bundles/send") %>