從MVC4開始,咱們就發現,項目中對Global.asax進行了優化,將原來在MVC3中使用的代碼移到了【App_Start】文件夾下,而Global.asax只負責初始化。其中的BundleConfig類就有個很牛X的功能:合併與壓縮。想到之前作ASP.NET的時候要經過工具壓縮,手動合併,很麻煩。經過BundleConfig能夠大大的提升工做效率和項目性能。javascript
1、基本的使用css
1.一、Global.asax文件的初始化java
protected void Application_Start() { RouteConfig.RegisterRoutes(RouteTable.Routes); }
1.二、BundleConfig 綁定壓縮文件jquery
public class BundleConfig { // 有關 Bundling 的詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=254725 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Content/Scripts/jquery-{version}.js" )); bundles.Add(new ScriptBundle("~/Content/Scripts/toojs").Include( "~/Content/Scripts/jquery.cookie.js", "~/Content/Scripts/footer.js" ));
1.三、視圖中的顯示web
@Styles.Render("~/Content/Css/Common") //單個樣式的綁定 @Scripts.Render("~/bundles/jquery","~/Content/Scripts/toojs","~/Content/Sctipts/bootstraptJs") //多個JS的綁定
1.四、web.config 的配置bootstrap
<system.web> <compilation debug="true" targetFramework="4.5"/>
debug="false"的時候就啓用的壓縮
2、效果說明 cookie
當啓用壓縮以後,打開firebug你會看到工具
多個文件在一塊兒會被合併,文件格式去掉了,造成的壓縮,提升了文件的加載時間。性能
我以爲還有一個很智能的好處:支持正則匹配文件優化
*\{version} 兩個是很好的匹配,在實際項目中,在樣式迭代開發時,stlye.1.0.css,stlye.1.1.css,stlye.1.2.css,stlye.1.3.css……模式累加,路徑只寫 ~/Content/stlye.*.css 就能夠了。
在JS開發的時候不少時候改了BUG,JS有版本更新:Script.1.0.js,Script.1.0.min.js,Script.1.1.js,Script.1.1.min.js 會使用到最新版本,用{version} debug模式下會取最新的文件,發佈的時候會取最新的min
3、注意事項:
剛開始的時候虛擬路徑的命名有就很奇怪: ~/bundles/jquery。以下:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
bundles.Add(new ScriptBundle("~/Content/Scripts/toojs").Include(
我開始覺得:~/Content/Scripts 是文件的文件夾地址,後面隨便命名,但~/bundles 又是什麼?咱們跟蹤的時候發現:
在bundles 註冊以前就有了值,原來系統已經定義好了7個路徑標識,應該是默認經常使用的吧。這個地方坑了我好長時間了,百度也沒人說~
好了,就這麼多了,這節沒有講代碼,就是說了下捆綁的新功能 。