我在我的网站上提供预压缩的CSS和JS文件,以及IE6-8和FF 与我的.htaccess文件完美配合。
# Compressed files
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
AddEncoding x-gzip .gz
AddType application/x-javascript .gz
AddType text/css .gz
我已经调用了扩展名为.gz的文件[example]:
<link rel="stylesheet" type="text/css" media="all" href="css/layout.css.gz" />
那为什么谷歌Chrome会中断呢?
感谢。
答案 0 :(得分:3)
下载Fiddler并查看原始响应标头,以查看服务器为该特定请求发回的内容。
仅供参考,Fiddler是一个客户端代理,可以过滤您的浏览器请求。处理这类问题时,信息量很大。
- 更新
经过进一步调查,您的RewriteCond似乎并没有按照您的想法行事。根据{{3}},RewriteCond指令仅与RewriteRule一起使用。
答案 1 :(得分:3)
要在Safari和Chrome上支持gzip存档,请将.css和.js文件复制并压缩到gzip中,并在.jgz上将它们的扩展名重命名为.gz (例如: 之前 - 将一个文件style.css放入目录 之后 - 两个文件,style.css和style.css.jgz到目录中)
并将此代码添加到.htaccess文件中:
AddEncoding gzip .jgz
RewriteCond %{HTTP:Accept-encoding} gzip
# RewriteCond %{HTTP_USER_AGENT} !Safari
RewriteCond %{HTTP_USER_AGENT} !Konqueror
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule ^(.*)$ $1.jgz [QSA,L]
<IfModule mod_headers.c>
Header append Vary User-Agent
<FilesMatch .*\.js.jgz$>
ForceType text/javascript
Header append Vary Accept-Encoding
Header set Content-Encoding: gzip
Header set Cache-control: private
</FilesMatch>
<FilesMatch .*\.css.jgz$>
ForceType text/css
Header append Vary Accept-Encoding
Header set Content-Encoding: gzip
Header set Cache-control: private
</FilesMatch>
</IfModule>
例如megaburg.ru 经过测试 - 正在使用Safari,Chrome,Opera和Firefox 8)
答案 2 :(得分:2)
Content-Encoding: gzip
回复标题。Accept-Encoding
标题允许 GZIP 时,您只能返回GZIP压缩内容。答案 3 :(得分:2)
我们的.htaccess文件(我们的.jsz文件包含压缩的javascript,Chrome可以很好地处理它们):
AddEncoding gzip .jsz
AddType text/javascript .jsz
答案 4 :(得分:1)
我回答了一个类似的问题,对于什么时候使用Gzip更加保守的匹配规则:
Safari,Chrome和IE6都有 Gzipped下载问题。也, Apache将执行gzip压缩 对你来说,没有必要手动 gzip文件。试试这个片段:
# This uses mod_deflate, which is pretty standard on Apache 2. Loading # mod_deflate looks like this: # # LoadModule deflate_module modules/mod_deflate.so # AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \\bMSIE !no-gzip !gzip-only-text/html
查看原始帖子:How can I make my .htaccess file allow Safari & other browsers to open GZIP?
答案 5 :(得分:0)
您只需要设置Content-Encoding
标头字段来告诉客户端,响应数据是用gzip编码的:
<FilesMatch "\.gz$">
Header set Content-Encoding gzip
</FilesMatch>
但不幸的是Apache不允许设置头字段。相反,Content-Encoding
将成为X-Content-Encoding
。
答案 6 :(得分:-2)
Google Chrome(和Apple Safari)不支持gzip压缩的CSS和JavaScript。某些IE6版本也存在问题。 它们支持gzip压缩的HTML文档,但不支持CSS和JavaScript。