在ASP.NET MVC4中(在WebForm中應該也有),有一個叫做Bundle的東西,它用來將js和css進行壓縮(多個文件可以打包成一個文件),并且可以區(qū)分調(diào)試和非調(diào)試,在調(diào)試時不進行壓縮,以原始方式顯示出來,以方便查找問題。
具體優(yōu)勢可自行百度或參看官方介紹:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
這里僅簡單記錄下如何使用。
首先,如果是使用的ASP.NET MVC4基本或者其他內(nèi)容更豐富的模板,Bundle應該已經(jīng)自動配置上了,因為本身會有jQuery和jQuery UI的引用,這兩項引用會用到Bundle。
就簡單說一下要點吧。
首先在項目的App_Start文件夾中,會有一個BundleConfig.cs文件:
![](/d/20211017/e982e6f29248a1c1d5e3635e848c9067.gif)
這里面寫了所有需要Bundle的內(nèi)容,可以自行設(shè)置:
![](http://img.jbzj.com/file_images/article/201605/2016516151054976.png?201641615115)
其中的bundles.Add是在向網(wǎng)站的BundleTable中添加Bundle項,這里主要有ScriptBundle和StyleBundle,分別用來壓縮腳本和樣式表。用一個虛擬路徑來初始化Bundle的實例,這個路徑并不真實存在,然后在新Bundle的基礎(chǔ)上Include項目中的文件進去。具體的Include語法可以查閱上面提供的官方簡介。
然后對Bundle的注冊是在項目根下的Global.asax文件中,這個文件中的Application_Start是網(wǎng)站程序的開始,里面注冊了網(wǎng)站各種初始化的內(nèi)容,其中就包括對BundleTable的Bundle添加:
![](/d/20211017/9644542ebb63c3ab944967e898b8801a.gif)
默認情況下,Bundle是會對js和css進行壓縮打包的,不過有一個屬性可以顯式的說明是否需要打包壓縮:
復制代碼 代碼如下:
BundleTable.EnableOptimizations = true;
如果將其設(shè)為false,那么就會和下面說的debug=true時的情況相同了。
在使用時,在相應位置調(diào)用ScriptRender和StyleRender的Render方法:
![](/d/20211017/98ec3fbe5ff74cc20d2f2757babd72d1.gif)
最終用戶頁面即可達到效果打包壓縮效果。
有一個地方主要注意,在Web.config中,當compilation編譯的debug屬性設(shè)為true時,表示項目處于調(diào)試模式,這時Bundle是不會將文件進行打包壓縮的,頁面中引用的js和css會分散原樣的展示在html中,這樣做是為了調(diào)試時查找問題方便(壓縮以后就復雜了)
![](/d/20211017/e832380a5cc379802e209bf9a4284ab4.gif)
最終部署運行時,將debug設(shè)為false就可以看到j(luò)s和css被打包和壓縮了。
=============
使用Bundle的關(guān)鍵在于要向ASP.NET中的BundleTable注冊Bundle。
如果要在ASP.NET WebForm中使用Bundle,需要在新建項目時選擇.NET Framework 4.5,最好使用模板網(wǎng)站新建,這樣就可以直接看到Bundle了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。
您可能感興趣的文章:- ASP.NET MVC下Bundle的使用方法
- Asp.net MVC下使用Bundle合并、壓縮js與css文件詳解
- ASP.NET MVC Bundles 用法和說明(打包javascript和css)
- 使用asp.net MVC4中的Bundle遇到的問題及解決辦法分享
- 基于Asp.Net MVC4 Bundle捆綁壓縮技術(shù)的介紹
- 詳解Asp.Net MVC的Bundle捆綁