[英]Bundling and not bundling in production and test environments in ASP.NET MVC
[英]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"));
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")
);
它不像從另一個引用一個包那樣簡潔,但是比重復每個腳本塊要好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.