ASP.NET绑定和缩小未生成查询字符串参数



我一直在使用ASP.NET绑定和缩小功能,并将其与金块包Microsoft.AspNet.Web.Optimization.结合使用

我昨天注意到,我的大多数捆绑文件不再有v查询字符串参数,其中一个例外是:

/Sgc.Web/bundles/css/JQueryUI

/Sgc.Web/bundles/css/DefaultPage

/Sgc.Web/bundles/js/Menu

/Sgc.Web/bundles/js/DefaultPage

/Sgc.Web/bundles/js/ReportOutputs

/Sgc.Web/bundles/js/Andercore主干网?v=4YsZ6DBVserabs64GE87Ua4d51aeg0D1wXHWNe3E6NU1

在我对仍然具有查询字符串的JS捆绑包进行更改后(如预期),它总是不断生成不同的v param值。然而,当我对其余的bundle(css或js)的css或js文件进行更改时,它们确实包含了这些更改,但不再产生v param值。

执行绑定的C#代码:

// -- create and add CSS bundles without minification
BundleTable.EnableOptimizations = true;
bundles.Add(new Bundle("~/bundles/css/JQueryUI").Include(
"~/Styles/Gui/jquery-ui-1.10.4-custom.css",
"~/Styles/Gui/jquery-ui-custom.css",
"~/Styles/Gui/jquery.ui.combogrid.css"));
bundles.Add(new Bundle("~/bundles/css/DefaultPage").Include(
"~/Styles/Default.css",
"~/Content/toastr.min.css"));   
// -- create and add JS bundles without minification
bundles.Add(new Bundle("~/bundles/js/DefaultPage").Include(
"~/Scripts/Defaults.js",
"~/Scripts/toastr.min.js"));
bundles.Add(new Bundle("~/bundles/js/Menu").Include(
"~/Scripts/Gui/Menus/SuperFish/jquery.hoverIntent.r7.min.js",
"~/Scripts/Gui/Menus/SuperFish/superfish1_7_4.min.js",
"~/Scripts/Gui/Menus/SuperFish/factory.js"));
bundles.Add(new Bundle("~/bundles/js/UnderscoreBackbone").Include(
"~/Scripts/underscore.min.js",
"~/Scripts/backbone.min.js"));
bundles.Add(new Bundle("~/bundles/js/ReportOutputs").Include(
"~/Scripts/Gui/jquery-visibility.js",
"~/Scripts/UserControls/ReportOutputs.js"));
//-- if in Release mode, then minify all the bundles
if (!System.Web.HttpContext.Current.IsDebuggingEnabled)
{
CssMinify cssMinify = new CssMinify();
JsMinify jsMinify = new JsMinify();
foreach (Bundle bundle in bundles)
{
if (bundle.Path.Contains("/js"))
{
bundle.Transforms.Add(jsMinify);
}
else
{
bundle.Transforms.Add(cssMinify);
}
}

从上面可以看出,我使用bundle超类而不是StyleBundle或ScriptBundle子类来构建bundle。然而,我也尝试用这两个子类制作捆绑包,结果是一样的:除了UndercoreBackbone捆绑包之外,所有捆绑包仍然没有v参数。据我所知,UndercoreBackbone捆绑包和其余捆绑包的制作方式没有区别。

我在用

  • Windows 8.1
  • VS Premium 2013更新1
  • Microsoft.AspNet.Web.Optimization 1.1.3
  • WebGrease 1.6.0
  • Microsoft.Web.Infrastructure 1.0.0.0
  • Json.NET(Newtonsoft.Json)6.0.1
  • ANTLRv3 3.5.0.2

以前有人遇到过这种问题吗?或者我在哪里可以找到解决方案?

提前感谢

MggLp

有时,在视图中,我们可能会做一些类似-的事情

Scripts.Render("/bundles/js/Default‌​Page")

但是获得哈希的正确语法-

Scripts.Render("~/bundles/js/Default‌​Page").

这可能是绝对路径和相对路径的问题。使用~,我们可以获得捆绑文件的查询字符串。

最新更新