[英]Bundling & minification not applying css & js using Asp.net 4.0 C#
[英]Resource (JS, CSS) compression, minification, and versioning in ASP.NET
我們正在研究一個Web項目中的一個重要版本,並且我開始越來越多地考慮javascript / css性能和版本控制。 到目前為止,我有幾個高級建議:
我還在考慮為我部署到的每個服務器自動生成配置文件,這有助於第二個想法。 我用第一個想法看到的主要優點是我可以動態處理版本控制(至少這是我底部的一個鏈接說的,我尚未使自己確信這確實可行)。
無論如何,我很好奇這些問題是否已經解決。 我希望收到任何反饋。 謝謝!
到目前為止,我一直在關注以下資源:
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.