2010-02-16 97 views
2

我有一些手工製作的網頁。在部署它們時,我想通過一個工具來運行它們,以便創建新的更小的HTML文件,並取出無關的空格等。優化和壓縮HTML

我們已經在使用YUICompressor作爲我們的Javascript和我們的CSS,並且我們傾向於關注所有雅虎表現團隊描述的技術。

是否有一個良好的,免費的工具,做到這一點?我更喜歡類似於YUICompressor的適合我們部署過程的工具。

+2

雅虎的性能告訴你gzip,你知道:http://developer.yahoo.com/performance/rules.html#gzip – 2010-02-16 11:35:59

+0

@Valentin - 我讀了這個問題(之前它被羅傑編輯)爲「我」我已經gzipping,我正在尋找其他的事情,我可以先做「 – Quentin 2010-02-16 11:42:40

回答

4

HTML Tidy做這項工作。

我用我生成(一個相當大的一個)一個文檔以下。這爲後gzip大小節省了大約10%。

tidy -c -omit -ashtml -utf8 --doctype strict \ 
    --drop-proprietary-attributes yes --output-bom no \ 
    --wrap 0 source.html > target.html 
  • -c - 更換盈餘表現標籤和屬性
  • -omit - 刪除可選的結束標記
  • -ashtml - 使用HTML而不是XHTML(HTML是精簡和XHTML大多數用例提供任何好處)
  • -utf8 - 所以我們不必使用字符集外的字符實體(實體更多的字節)
  • --doctype strict - 使用嚴格的(再次,精簡)
  • --drop-proprietary-attributes yes - 擺脫專有垃圾
  • --output-bom no的 - BOM表會導致一些客戶
  • --wrap 0問題 - 有很長的線
+0

非常感謝。我會研究這一點。 對於我的好處(以及可能的一些讀者的),你能解釋一下各個選項的含義傳遞 再次感謝 – 2010-02-16 11:42:30

3

普通老式minify會如果你願意,還會攻擊你的HTML。

但HTML微小不是,一般,巨大的效益:

  • 到一個空白的以運行不會做那麼多。如果您已經使用gzip /放氣,那將是非常有效地壓縮空白。您無法刪除所有空格,因爲單個空格通常可能會影響渲染,因此需要保留空格。

  • 以評論了可能有效果,這取決於你實際上有多少評論內容。但是你必須小心,不要打條件評論。

  • 除此之外,HTML文檔中沒有太多可以「縮小」的東西。顯然下來包裝的變量名,以最短的字符串的JS想法是不適用的。

  • 用正則表達式完成所有這些工作,就像大多數minifiers所做的那樣,有點不妥。你必須堅持一個有限的'正常'範圍的標記,不會將其絆倒。

隨着HTML縮小你通常越來越少增益(和更少的gzip後的收益),比JS/CSS縮小,併爲動態生成的頁面你有更多的開銷(因爲你不能預先縮小他們喜歡用靜態腳本/樣式)。一些模板語言可能已經具有用於在生成時修整空白的內置功能;如果您的環境中可用,請使用它。

+0

1. 說完看着縮小。它看起來並不適合這項工作。它更像是一種將css和javascripts連接起來的工具。 2.正如我所說的我們的HTML是手工製作的,他們有豐富的註釋和空格。 他們看起來有點像這樣: ... < - 這裏是內容... - >

我們肯定可以僅僅通過在部署減少它們的大小收穫不少。 – 2010-02-16 11:52:40