捆绑 asp.net
Bundling in asp.net
我在 ASP.net MVC 应用程序中使用捆绑。我想以分层方式构建我的包。
例如,这些是我想要在我的所有网页上使用的脚本:
bundles.Add(new ScriptBundle("~/bundles/bootstrap-js").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/bootstrap-datetimepicker.min.js",
"~/Scripts/jquery.smartmenus.js",
"~/Scripts/jquery.smartmenus.bootstrap.js"
));
接下来我想在某些页面上进行例如挖空:
bundles.Add(new ScriptBundle("~/bundles/knockout-js").Include(
"~/Scripts/knockout/knockout-3.4.0.js",
"~/Scripts/knockout/knockout-kendo.js",
"~/Scripts/knockout/knockout.mapping-latest.js",
"~/Scripts/knockout/knockout.validation.js",
"~/Scripts/knockout/knockout.validation.de-DE.js",
"~/Scripts/knockout/knockout.validation.fr-BE.js",
"~/Scripts/knockout/knockout.validation.nl-BE.js",
"~/Scripts/knockout/Knockout.bindinghandlers.js",
"~/Scripts/knockout/knockout.validation.mvc.js"));
最后,我希望每个页面都有自己的自定义脚本。
bundles.Add(new ScriptBundle("~/bundles/scriptName-js").Include(
"~/Views/Cards/scriptName.js"));
有没有办法让我只需要包含一个 @scripts.render 语句,将所有以前的捆绑包合并到一个捆绑包中?
@Scripts.Render("~/bundles/mypage-js")
我试过了,但没用:
bundles.Add(new ScriptBundle("~/bundles/mypage-js").Include("~/bundles/scriptName-js","~/bundles/knockout-js","~/bundles/bootstrap-js"));
有一个 overload of Include
接受路径数组而不是 params
路径。您可以使用它来将共享脚本块定义为 string[]
,然后包括它们:
var everyPage = new [] {
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/bootstrap-datetimepicker.min.js",
"~/Scripts/jquery.smartmenus.js",
"~/Scripts/jquery.smartmenus.bootstrap.js"
};
var knockout = new [] {
"~/Scripts/knockout/knockout-3.4.0.js",
"~/Scripts/knockout/knockout-kendo.js",
//etc...
};
bundles.Add(new ScriptBundle("~/bundles/scriptName-js")
.Include(everyPage)
.Include(knockout)
.Include("~/Views/Cards/scriptName.js")
);
它不像从另一个包中引用一个包那么简洁,但它比重复每个脚本块要好
我在 ASP.net MVC 应用程序中使用捆绑。我想以分层方式构建我的包。
例如,这些是我想要在我的所有网页上使用的脚本:
bundles.Add(new ScriptBundle("~/bundles/bootstrap-js").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/bootstrap-datetimepicker.min.js",
"~/Scripts/jquery.smartmenus.js",
"~/Scripts/jquery.smartmenus.bootstrap.js"
));
接下来我想在某些页面上进行例如挖空:
bundles.Add(new ScriptBundle("~/bundles/knockout-js").Include(
"~/Scripts/knockout/knockout-3.4.0.js",
"~/Scripts/knockout/knockout-kendo.js",
"~/Scripts/knockout/knockout.mapping-latest.js",
"~/Scripts/knockout/knockout.validation.js",
"~/Scripts/knockout/knockout.validation.de-DE.js",
"~/Scripts/knockout/knockout.validation.fr-BE.js",
"~/Scripts/knockout/knockout.validation.nl-BE.js",
"~/Scripts/knockout/Knockout.bindinghandlers.js",
"~/Scripts/knockout/knockout.validation.mvc.js"));
最后,我希望每个页面都有自己的自定义脚本。
bundles.Add(new ScriptBundle("~/bundles/scriptName-js").Include(
"~/Views/Cards/scriptName.js"));
有没有办法让我只需要包含一个 @scripts.render 语句,将所有以前的捆绑包合并到一个捆绑包中?
@Scripts.Render("~/bundles/mypage-js")
我试过了,但没用:
bundles.Add(new ScriptBundle("~/bundles/mypage-js").Include("~/bundles/scriptName-js","~/bundles/knockout-js","~/bundles/bootstrap-js"));
有一个 overload of Include
接受路径数组而不是 params
路径。您可以使用它来将共享脚本块定义为 string[]
,然后包括它们:
var everyPage = new [] {
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/bootstrap-datetimepicker.min.js",
"~/Scripts/jquery.smartmenus.js",
"~/Scripts/jquery.smartmenus.bootstrap.js"
};
var knockout = new [] {
"~/Scripts/knockout/knockout-3.4.0.js",
"~/Scripts/knockout/knockout-kendo.js",
//etc...
};
bundles.Add(new ScriptBundle("~/bundles/scriptName-js")
.Include(everyPage)
.Include(knockout)
.Include("~/Views/Cards/scriptName.js")
);
它不像从另一个包中引用一个包那么简洁,但它比重复每个脚本块要好