Dot-Htaccess

使用 Gzip 壓縮或 Deflate 我的 CSS 和 JS 文件

  • November 5, 2013

我有一個時尚網站並使用 wordpress。我想壓縮或 Gzip 或 Deflate我的CSS 和 JS 文件。我嘗試了許多帶有**.htaccess的程式碼來壓縮但不工作**。有沒有人可以幫幫我?

我的 phpinfo 是http://deemasfashion.co.uk/1.php

以下是我嘗試過的程式碼不起作用。它們中的少數可能相同,但語法有所不同。

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

我嘗試過但無法正常工作的其他程式碼…

<files *.css>
SetOutputFilter DEFLATE
</files>
<files *.js>
SetOutputFilter DEFLATE
</files>

我也嘗試過這段程式碼,但沒有成功。

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

此程式碼也不起作用

<FilesMatch "\.(html?|txt|css|js|php|pl)$">
SetOutputFilter DEFLATE
</FilesMatch>

這是另一個不起作用的程式碼。

<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x- javascript application/javascript
</ifmodule>

這是另一個不起作用的程式碼。

<IFModule mod_deflate.c>
<filesmatch "\.(js|css|html|jpg|png|php)$">
SetOutputFilter DEFLATE
</filesmatch>
</IFModule>

這是另一個不起作用的程式碼。

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript    application/javascript application/json
<FilesMatch "\.(css|js)$" >
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

這是另一個不起作用的程式碼。

#Gzip - compress text, html, javascript, css, xml
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</ifmodule>
#End Gzip

這是另一個不起作用的程式碼。

<Location />
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
</Location> 

phpinfo除非是模組,否則不顯示 Apache 的配置 -mod_status顯示 Apache 的配置,包括載入的模組。

如果您安裝了 mod_gzip,這應該可以工作:

mod_gzip_on Yes
mod_gzip_dechunk Yes

mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/javascript
mod_gzip_item_include mime ^application/xm.*
mod_gzip_item_include mime ^image/svg.*
mod_gzip_item_include mime ^application/(x-)?font-.*

(注意,前兩行抓取 CSS 和 Javascript,但也包含“文本”mime 類型的任何內容)

我更喜歡 mod_gzip 到 mod_deflate 作為

  1. GZip 有一個校驗和,並使用與 deflate 完全相同的壓縮。
  2. 配置簡單一百萬倍。我仍然無法弄清楚 Deflate 配置是故意困難的還是歷史的產物。
  3. GZip 在瀏覽器中也得到了很好的支持,因此除了校驗和的“成本”之外沒有其他缺點。

引用自:https://serverfault.com/questions/550822