我正在优化 magento 商店,一些 JS 和 CSS(在MEDIA
文件夹中编译和最小化)没有按照应有的方式进行 gzip 压缩。
所有页面都经过 gzip 压缩(例如此 HTML 页面),但有些内容不是(例如这个 JS 文件)。
通过 gtmetrix.com 和 whatsmyip 进行测试HTTP 压缩测试
我有这个配置.htaccess
:
<IfModule mod_deflate.c>
# Insert filter on all content
SetOutputFilter DEFLATE
# Insert filter on selected content types only
#AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
#SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
# compress text, HTML, JavaScript, CSS, and XML
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
AddOutputFilterByType DEFLATE application/js
# remove browser bugs
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
我可能错过了什么?
答案1
您可以在 .htaccess 中使用它
# BEGIN Compress text files
<ifModule mod_deflate.c>
<filesMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
# END Compress text files
这是 .htaccess 配置示例的一部分,可压缩此处列出的所有 *.css、*.js、*.html、*.xhtml 和 *.php 文件(http://www.samaxes.com/2009/01/more-on-compressing-and-caching-your-site-with-htaccess/)。其中还列出了如何按类型设置标头和缓存的过期时间。但这对您来说并不是那么重要。
设置压缩的另一种方法是使用 apache 的外部扩展模块mod_gzip
。这也是非常流行的解决方案。要使用此解决方案,您应该在 .htaccess 中写入此
<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>
有关更多详细信息,请参阅本文(http://www.samaxes.com/2008/04/htaccess-gzip-and-cache-your-site-for-faster-loading-and-bandwidth-saving/)。
答案2
我遇到了同样的问题,我正在使用 Chrome 38.0.2125.104(64 位)开发工具进行测试,分析服务器响应标头。
我认为你应该将此指令添加到你的 htaccess 中
AddOutputFilterByType DEFLATE text/javascript