2016-05-13 91 views
0

我使用下列行我.htaccess文件:gZip和DEFLATE如何實際工作?

#################### 
# GZIP COMPRESSION # 
#################### 
SetOutputFilter DEFLATE 
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0[678] no-gzip 
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip 
Header append Vary User-Agent env=!dont-vary 

我已經測試,通過瀏覽器的工具,它的工作並啓用。

這裏非常愚蠢的問題......但我必須真正壓縮文件並提供一個gzip文件來實際完成這項工作嗎?

或者當瀏覽器使用資源時會發生這種情況嗎?

+0

您還沒有要手動gzip它,web服務器爲你做。這就是爲什麼你有'AddOutputFilterByType'告訴Apache究竟要壓縮什麼,並且在壓縮成功之後 - 它會添加適當的頭部,這樣瀏覽器就知道它必須在顯示給你之前解壓縮內容。 – Mjh

+1

已投票,因爲沒有進行任何研究。 – Michael

+0

邁克爾今天脾氣暴躁。謝謝Mjh。 –

回答

3

Apache模塊mod_deflate爲您做壓縮。

這是一個輸出篩選器它將在將數據發送到客戶端之前壓縮數據,具體取決於客戶端是否可以真正理解壓縮(這是協商)。

+0

jjmontes因此經過幾次測試後,我仍然看到有些文件被標記爲「仍然應該被壓縮」。爲什麼這些文件沒有被壓縮?是由於文件擴展名嗎? 「.min.js」 http://summerlawnsinc.com/css/style-desktop.css http://summerlawnsinc.com/js/jquery.dropotron.min.js http://summerlawnsinc.com/js /skel.min.js http://summerlawnsinc.com/js/skel-layers.min.js –

+0

檢查這些文件是否與您的設置匹配的MIME類型(「text/html text/css text/plain text/xml text/javascript application/x-javascript application/x-httpd-php')。檢查你沒有打你的例外(即MSIE或Mozilla/4)。檢查您的瀏覽器是否使用這些資源的緩存版本(按CTRL + F5或清除緩存)。 – jjmontes

0

這些文件應該在服務器上「即時」壓縮。您可以查看它查看響應http標頭Content-Encoding。它應該有值gzip,表明該文件在服務器端壓縮並在客戶端未壓縮(顯然,如果它不是該文件對瀏覽器不合適)