對於網站中的JavaScript和CSS檔案,我們經常會將其壓縮以便節省伺服器頻寬、加快網站頁面呈現速度(檔案下載快了,網頁當然顯示更快)。對於一些大量使用JavaScript的網站,可能經常會修改JavaScript檔案,如果每次發布需要手工壓縮JavaScript檔案也是一件很麻煩的事情,懶人們通常希望什麼都自動化——這次利用YUI Compressor for .Net和Web Deployment Project來實現編譯時間自動壓縮JS和CSS檔案。當然,通常我們可能並不希望在Debug模式編譯時間壓縮,我們只希望在Release模式編譯時間壓縮。題外話:發現有些朋友似乎根本不Care什麼是Debug編譯模式什麼是Release編譯模式,反正他從來沒有注意過編譯模式。在發布時也會將整個網站以原始碼的形式拷貝到生產伺服器。他們通常認為這樣更加容易查錯——在生產伺服器上開ASP.NET的Debug模式,禁用自訂錯誤頁面等等。我非常不贊同這樣的方式部署ASP.NET應用。我更趨向於使用Release模式編譯網站,關閉ASP.NET
Debug模式,開啟自訂錯誤頁面,當然,這種情況下應該有ASP.NET健康監測,當發生未捕捉異常時需要記錄下來,嚴重的錯誤最好能夠自動通知管理員。
1.首先我們去YUI Compressor for .Net首頁下載檔案:
http://yuicompressor.codeplex.com/releases/view/36891
2.如果沒有安裝Web Deployment Project,下載並安裝它:
http://go.microsoft.com/fwlink/?LinkID=104956
3.下載YUI Compressor for .Net開發人員提供的WDP樣本
4.在自己的解決方案建立WDP工程
5.拷貝YUI Compressor for .Net的dll檔案到一個合適的地方——方便引用
6.使用記事本等文字編輯器開啟WDP工程檔案也可以在解決方案管理器裡面選擇WDP工程,在右鍵菜單中選擇“Open project file”命令在VS中開啟解決方案檔案。
7.按照樣本的提示在工程檔案中添加屬性。
步驟看起來比較多,但是其實很簡單,並且一旦設定以後都不用管理了——除非增加或者刪除了檔案,是一勞永逸的事情啊。
注意,樣本檔案會把所有指定的js或css檔案壓縮合并成一個檔案。如果想每一個檔案單獨壓縮而不最終合并到一起需要使用其他方式設定。不過設定方法也不複雜。有人通過修改YUI Compressor for .Net代碼來實現,但其實只需要修改WDP檔案,利用MSBUILD就可以完成。
如果CSS文章有中文,就需要注意在WDP中設定檔案編碼,一般使用UTF-8就可以了。
有時間再補充多檔案單獨壓縮的問題。