2011-01-10 34 views
5

美好的一天!ASP.NET和MVC的CSS和JavaScript文件的組合,最小化和gzip

我正在尋找結合,最小化和gzip CSS和JavaScript文件的解決方案。他們似乎有兩種形式:

  • 與處理文件ASP.NET處理程序\模塊的形式對飛(帶緩存結果)
  • 在VS的建設任務形式(以同時建設進行處理)

一般我都可以。我已經看了很多解決方案(我從這篇文章http://www.codeproject.com/KB/aspnet/httpcompression.aspx很多地方使用ASP.NET處理程序很多),但也許有一些「必須有」出來,我錯過了它。

在此先感謝!

回答

6

以下是我對您的建議:使用構建任務和HTTP緩存輸出。

就構建任務而言,您需要查看您最喜愛的JavaScript縮小器(我的最愛是Google Closure Minifier),它具有一個命令行實用程序,您可以將其插入項目文件,MSBUILD文件或NANT文件。與CSS相同(我個人使用Yahoo! YUI Compressor)。如果您使用的是LESS,您當然可以將其與YUI壓縮機結合使用。要優化圖像,我會使用optipng。有關這些人如何在他們的個人網站上工作的指示。

現在,在您將這些文件都打包好並優化之後,您需要使用MVC的處理程序或控制器操作輸出它們。要設置有效期,以便後續請求將默認下載的第一個請求的文件,你會想這對你的代碼運行:

Response.ExpiresAbsolute = DateTime.Now.AddYears(1); 

很可能你會希望有一個緩存無效策略,讓更多您可以更改內容文件。你可以通過傳遞一個隨機參數到你的處理程序來完成。有幾種不同的方式可以解決這個問題......只需Google即可。

希望這會有所幫助。

2

我對中小型網站使用telerik mvc components。使用NuGet進行添加和配置非常簡單。

+0

感謝您的迴應,你的意思是這個捆綁包的這一部分? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk 2011-01-11 08:58:19

+0

是的。 Web資產管理器是處理所有這些事情的。我正在使用它的開源版本。 – 2011-01-11 18:18:29

2

飛蛾可以(除其他外)處理您的所有javascript/css請求。見Wiki: Javascript

最重要的是,它也可以將所有javascript放在頁面底部,包括您在部分視圖中編寫的部分! Wiki: Inline script