若單獨運行css.ashx,則提示以下資訊:
css.ashx、js.ashx:用法:
css.ashx?href=A,B,C
js.ashx?href=A,B,C
同級目錄中的不同檔案,以方括弧括起來
css.ashx?href=[A/A1,A2]意思為串連~/A/A1.css與~/A/A2.css
js.ashx?href=[B/B1,B2]意思為串連~/B/B1.js與~/B/B2.js
混合用法
css.ashx?href=A,[B/B1,B2],C/C1意思為串連~/A.css與~/B/B1.css與~/B/B2.css與~/C/C1.css
未找到檔案時的處理:
如果未找到A.CSS,在最終輸出結果中會出現/CSS Combiner 未找到檔案~/A.css/
如果未找到A.JS,在最終輸出結果中會出現//JS Combiner 未找到檔案~/A.js
12/06/2012 10:22:41.266 上午
請問是什麼原理? 還是 .net 自身的一個動態載入技術?
回複內容:
若單獨運行css.ashx,則提示以下資訊:
css.ashx、js.ashx:用法:
css.ashx?href=A,B,C
js.ashx?href=A,B,C
同級目錄中的不同檔案,以方括弧括起來
css.ashx?href=[A/A1,A2]意思為串連~/A/A1.css與~/A/A2.css
js.ashx?href=[B/B1,B2]意思為串連~/B/B1.js與~/B/B2.js
混合用法
css.ashx?href=A,[B/B1,B2],C/C1意思為串連~/A.css與~/B/B1.css與~/B/B2.css與~/C/C1.css
未找到檔案時的處理:
如果未找到A.CSS,在最終輸出結果中會出現/CSS Combiner 未找到檔案~/A.css/
如果未找到A.JS,在最終輸出結果中會出現//JS Combiner 未找到檔案~/A.js
12/06/2012 10:22:41.266 上午
請問是什麼原理? 還是 .net 自身的一個動態載入技術?
就是個handler頁面,看他這麼寫無非就是伺服器組建處理了一下資源檔。
href=[/public/autocomplete.css],[/index/global.css,header-top.css,header-logo.css,header-nav.css,footer.css,indexcontentv10.css]
把多個css一起在後台讀出來然後用一次http請求返回到前台。
&v=20130712115604
這個參數應該是為了防止瀏覽器緩衝的問題,特意設定的參數
&compress
看這個參數猜測後台應該是把所有的css讀取、拼接然後再壓縮返回到前台。
做這些工作可以最佳化資源檔的網路傳輸:1.減少http請求次數2.減小css檔案體積
Tengine可以很好的實現js/css合并
請看這個連結 http://msdn.microsoft.com/zh-cn/library/bb398986(v=vs.100).aspx ,有詳細解析。
實際上原來的aspx也會在預設情況下被註冊為一個hanlder,ashx和aspx的區別在於aspx為了開發方便添加了很多組件、屬性、事件等,而ashx相對底層,因此比較簡單,優點就是快速。
實際上凡客這樣做是不對的,重複發明輪子,應該採用第三方的架構來實現Js和Css的打包壓縮。
另外Asp.Net 4.5已經內建了一個這樣的架構,有興趣可以看 http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx 。