我一直在使用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/DefaultPage")
但是获得哈希的正确语法-
Scripts.Render("~/bundles/js/DefaultPage").
这可能是绝对路径和相对路径的问题。使用~
,我们可以获得捆绑文件的查询字符串。