最近本身創建一個本身的購物網站,準備啓用Bundle來打包壓縮js和css優化,遇到一點點小問題,這裏僅簡單記錄下如何使用。css
首先,若是是使用的ASP.NET MVC4基本或者其餘內容更豐富的模板,Bundle應該已經自動配置上了,由於自己會有jQuery和jQuery UI的引用,這兩項引用會用到Bundle。html
就簡單說一下要點吧。web
首先在項目的App_Start文件夾中,會有一個BundleConfig.cs文件:工具
這裏面寫了全部須要Bundle的內容,能夠自行設置:測試
其中的bundles.Add是在向網站的BundleTable中添加Bundle項,這裏主要有ScriptBundle和StyleBundle,分別用來壓縮腳本和樣式表。用一個虛擬路徑來初始化Bundle的實例,這個路徑並不真實存在,而後在新Bundle的基礎上Include項目中的文件進去。具體的Include語法能夠查閱上面提供的官方簡介。優化
而後對Bundle的註冊是在項目根下的Global.asax文件中,這個文件中的Application_Start是網站程序的開始,裏面註冊了網站各類初始化的內容,其中就包括對BundleTable的Bundle添加:網站
默認狀況下,Bundle是會對js和css進行壓縮打包的,不過有一個屬性能夠顯式的說明是否須要打包壓縮:spa
BundleTable.EnableOptimizations = true;
若是將其設爲false,那麼就會和下面說的debug=true時的狀況相同了。debug
在使用時,在相應位置調用ScriptRender和StyleRender的Render方法:3d
最終用戶頁面便可達到效果打包壓縮效果。
有一個地方主要注意,在Web.config中,當compilation編譯的debug屬性設爲true時,表示項目處於調試模式,這時Bundle是不會將文件進行打包壓縮的,頁面中引用的js和css會分散原樣的展現在html中,這樣作是爲了調試時查找問題方便(壓縮之後就噁心了。。。)。
最終部署運行時,將debug設爲false就能夠看到js和css被打包和壓縮了。
=============
使用Bundle的關鍵在於要向ASP.NET中的BundleTable註冊Bundle。
若是要在ASP.NET WebForm中使用Bundle,須要在新建項目時選擇.NET Framework 4.5,最好使用模板網站新建,這樣就能夠直接看到Bundle了。
VS開發環境:VS工具欄上有個Debug,Release,我本身在測試時,覺得可使用Release模式,而後選擇測試【開始執行-不調試】可是沒有做用,同樣不會生成,必須將Web.config的compilation的debug設定爲false(即表明了:BundleTable.EnableOptimizations=true,這段代碼也能夠在代碼裏寫,代碼裏寫就會覆蓋web.config了),纔會起做用!
發佈正式環境:Web.config的compilation的debug設定爲false(固然若是你在代碼上有控制BundleTable.EnableOptimizations值,那麼web.config會被覆蓋,那就無所謂了)