簡體   English   中英

ASP.NET中的資源(JS,CSS)壓縮,縮小和版本控制

[英]Resource (JS, CSS) compression, minification, and versioning in ASP.NET

我們正在研究一個Web項目中的一個重要版本,並且我開始越來越多地考慮javascript / css性能和版本控制。 到目前為止,我有幾個高級建議:

  1. 為我編寫(或自定義)http處理程序。 顯然,這還必須處理緩存,以證明可能發生的動態IO。
  2. 將這些步驟添加到將僅用於部署運行的自定義msbuild腳本中。

我還在考慮為我部署到的每個服務器自動生成配置文件,這有助於第二個想法。 我用第一個想法看到的主要優點是我可以動態處理版本控制(至少這是我底部的一個鏈接說的,我尚未使自己確信這確實可行)。

無論如何,我很好奇這些問題是否已經解決。 我希望收到任何反饋。 謝謝!

到目前為止,我一直在關注以下資源:

http://madskristensen.net/post/Combine-multiple-stylesheets-at-runtime.aspx http://madskristensen.net/post/Remove-whitespace-from-stylesheets-and-JavaScript-files.aspx http:// www.west-wind.com/WebLog/posts/413878.aspx http://svn.offwhite.net/trac/SmallSharpTools.Packer/wiki

您將執行此操作,這是您擁有的持續集成構建過程的一部分。

將所有JS與先前檢查的版本進行比較,對於每個已更改的版本,對該JS文件調用YUI壓縮器,並使用當前修訂號命名輸出。 將該文件添加到您的存儲庫,然后更改配置文件以具有該js文件的最新修訂號。 然后,您將編寫一個導入js文件的自定義控件。 當在開發機上運行時,此控件將使用未壓縮的js,或者在已部署的安裝程序上運行時,將使用配置文件中帶有修訂號的壓縮文件。

除了1)之外,Microsoft還內置了將資源文件嵌入DLL的支持 當您更改並重新編譯項目時,它將始終得到更新。

問題是,您無法控制緩存和文件名。 調試時,很難將所有東西都稱為“ webresource.axd”的東西進行調試。 真是地獄

我也想讀別人怎么做。

就個人而言,我寧願將它作為構建過程的一部分來完成,以避免對每個請求動態執行此操作而導致的性能損失。 我猜您可以通過實施適當的緩存來減少損失,但是為什么要麻煩呢……IIS已經可以為您解決這個問題(除非您不是在IIS之上運行,否則我想)。

作為一般建議,如果您想加快瀏覽器渲染的速度,Steven Souders談論的事情也很棒。 如果你還沒有准備好,來看看這個

我的團隊最近不再將腳本保留為嵌入式資源,我們對結果感到非常滿意。 是的,您可以使用處理程序來組合和縮小它們,但這有點麻煩,尤其是當您要從單獨的域托管它們時。

現在我們要做的是將所有控制腳本文件分隔開,然后在構建過程中使用js-builder之類的工具來組合和縮小它們。 實際上,我們從該工具輸出了兩個文件,一個簡單地組合在一起用於調試,另一個組合並縮小后的一個用於生產。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM