ASP.NET MVC Bundles 用法和說明(打包javascript和css)
在網(wǎng)頁中,我們經(jīng)常需要引用大量的javascript和css文件,在加上許多javascript庫都包含debug版和經(jīng)過壓縮的release版(比如jquery),不僅麻煩還很容易引起混亂,所以ASP.NET MVC4引入了Bundles特性,使得我們可以方便的管理javascript和css文件。
原來,我們引用css和javascript文件我們需要這樣一個一個的引用:
<scriptsrc="~/Scripts/jquery-1.8.2.js"></script>
<scriptsrc="~/Scripts/jquery-ui-1.8.24.js"></script>
<scriptsrc="~/Scripts/jquery.validate.js"></script>
<linkhref="~/Content/Site.css"rel="stylesheet"/>
當(dāng)需要引用文件的數(shù)量較少時還好,但一旦每個頁面都需要引用較多文件時,會造成極大的不便,當(dāng)我們想更換某個引用文件時,將會浪費大量的時間。發(fā)布時,還要將一些庫替換成release版,比如上面的jquery-1.8.2.js所對應(yīng)的jquery-1.8.2.min.js
還好,現(xiàn)在我們可以使用Bundles特性:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery")
.Include("~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui")
.Include("~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval")
.Include("~/Scripts/jquery.unobtrusive*"
,"~/Scripts/jquery.validate*"));
bundles.Add(new StyleBundle("~/Content/css")
.Include("~/Content/site.css"));
}
}
接著在Global.asax文件的Application_Start方法中調(diào)用BundleConfig.RegisterBundles方法:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
在上面我們可以看到我們按照功能的不同,將不同的文件分到了相應(yīng)的Bundle(Bundle就是包的意思),其中構(gòu)造函數(shù)中的string參數(shù)是Bundle的名稱,Include函數(shù)是將參數(shù)相應(yīng)的文件包含成一個Bundle??梢园l(fā)現(xiàn),對于jquery庫我們使用了這樣的名稱~/Scripts/jquery-{version}.js,其中{version}部分代表版本號的意思,MVC將會替我們在Scripts文件中尋找對應(yīng)的"jquery-版本號.js"文件,并且在非debug模式下,MVC則會使用“jquery-版本號.min.js"文件。
我們還看到我們使用了這樣的名稱~/Scripts/jquery.validate*的名稱,*是一個通配符,這就意味著Scripts文件夾下的所有前綴為jquery.validate的文件都將包含在同一個Bundle中。
最后,我們可以View上使用Bundle來代替原來引用的方式:
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/jquery")
相關(guān)文章
在ASP.NET 2.0中操作數(shù)據(jù)之四十四:DataList和Repeater數(shù)據(jù)排序(三)
上篇已經(jīng)完成了自定義分頁,這一節(jié)我們繼續(xù)完善排序功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之三十四:基于DataList和Repeater跨頁面的主/從報表
前面介紹了使用GridView實現(xiàn)跨頁面的主/從報表,同樣DataList和Repeater也可以實現(xiàn)相同功能。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之三十:格式化DataList和Repeater的數(shù)據(jù)
本文主要介紹ASP.NET 2.0使用DataList和Repeater如何呈現(xiàn)數(shù)據(jù),一種是在控件的ItemDataBound事件中處理,一種則是在綁定數(shù)據(jù)時調(diào)用后臺定義的方法來實現(xiàn)。2016-05-05.Net?Core微服務(wù)網(wǎng)關(guān)Ocelot基礎(chǔ)介紹及集成
這篇文章介紹了.Net?Core微服務(wù)網(wǎng)關(guān)Ocelot基礎(chǔ)及集成,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01ASP.NET MVC4入門教程(八):給數(shù)據(jù)模型添加校驗器
本文介紹給模型添加校驗器,以前我們做表單驗證都要前臺驗證一遍,后臺再驗證一遍,MVC4中這種方式,只需在模型上加驗證規(guī)則,前后臺就都驗證了。2016-04-04《解剖PetShop》之一:PetShop的系統(tǒng)架構(gòu)設(shè)計
PetShop是一個范例,微軟用它來展示.Net企業(yè)系統(tǒng)開發(fā)的能力。本文主要講解PetShop4.0的系統(tǒng)架構(gòu)設(shè)計,需要的朋友可以參考下。2016-05-05ASP.NET 2.0中的數(shù)據(jù)操作之七:使用DropDownList過濾的主/從報表
本文主要介紹在ASP.NET 2.0中如何給DropDownList控件綁定數(shù)據(jù)源,并通過DropDownList所選的不同的值,篩選出不同的數(shù)據(jù)信息。2016-05-05.NET 2.0獲取配置文件AppSettings和ConnectionStrings節(jié)數(shù)據(jù)的方法
.NET 2.0獲取配置文件AppSettings和ConnectionStrings節(jié)數(shù)據(jù)的方法...2007-12-12使用.Net6中的WebApplication打造最小API
本文詳細講解了使用.Net6中的WebApplication打造最小API,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12