在這里了解當(dāng)今互聯(lián)網(wǎng)的最新動(dòng)態(tài)
在這里了解當(dāng)今
在ASP.NET MVC4中(在WebForm中應(yīng)該也有),有一個(gè)叫做Bundle的東西,它用來將js和css進(jìn)行壓縮(多個(gè)文件可以打包成一個(gè)文件),并且可以區(qū)分調(diào)試和非調(diào)試,在調(diào)試時(shí)不進(jìn)行壓縮,以原始方式顯示出來,以方便查找問題。
首先,如果是使用的ASP.NET MVC4基本或者其他內(nèi)容更豐富的模板,Bundle應(yīng)該已經(jīng)自動(dòng)配置上了,因?yàn)楸旧頃?huì)有jQuery和jQuery UI的引用,這兩項(xiàng)引用會(huì)用到Bundle。
就簡(jiǎn)單說一下要點(diǎn)吧。
首先在項(xiàng)目的App_Start文件夾中,會(huì)有一個(gè)BundleConfig.cs文件,這里面寫了所有需要Bundle的內(nèi)容,可以自行設(shè)置。
其中的bundles.Add是在向網(wǎng)站的BundleTable中添加Bundle項(xiàng),這里主要有ScriptBundle和StyleBundle,分別用來壓縮腳本和樣式表。用一個(gè)虛擬路徑來初始化Bundle的實(shí)例,這個(gè)路徑并不真實(shí)存在,然后在新Bundle的基礎(chǔ)上Include項(xiàng)目中的文件進(jìn)去。
bundles.Add(new ScriptBundle("~/bundles/controllers").Include( "~/asset/js/controllers/*.js")); bundles.Add(new ScriptBundle("~/bundles/services").Include( "~/asset/js/services/*.js"));然后對(duì)Bundle的注冊(cè)是在項(xiàng)目根下的Global.asax文件中,這個(gè)文件中的Application_Start是網(wǎng)站程序的開始,里面注冊(cè)了網(wǎng)站各種初始化的內(nèi)容,其中就包括對(duì)BundleTable的Bundle添加。
BundleConfig.RegisterBundles(BundleTable.Bundles);
有一個(gè)地方主要注意,在Web.config中,當(dāng)compilation編譯的debug屬性設(shè)為true時(shí),表示項(xiàng)目處于調(diào)試模式,這時(shí)Bundle是不會(huì)將文件進(jìn)行打包壓縮的,頁面中引用的js和css會(huì)分散原樣的展示在html中,這樣做是為了調(diào)試時(shí)查找問題方便,最終部署運(yùn)行時(shí),將debug設(shè)為false就可以看到j(luò)s和css被打包和壓縮了。
<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
資訊列表