我希望Apache通过网络发送gzip'ed的静态文件,但也希望Apache不能总是一遍又一遍地gzip化它们。因此,我认为如果存在.gz文件,是否无法提供该文件。此设置:
文件结构:
static/
|
|--- style.css
|
\--- style.css.gz
.htaccess中的以下内容:
mod_rewrite规则:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
而这个设置:
AddEncoding x-gzip .gz
实际上,如果请求转到,则在发送.gz文件而不是.css的情况下,此方法有效/static/style.css
。唯一的问题是,文件以“ application / x-gzip”而不是“ text / css”的形式提供。使用mod_rewrite的T标志不会改变它。明确的也没有
AddType text/css .css
有谁知道我如何实现期望的行为?还是出于某种我没想到的原因而不必要?
编辑:还有一个额外的困难:将原始文件发送给不带gzip支持的客户端。有谁知道这如何工作?
我感到惊讶的是,这种情况并没有更加明显,因为拥有不执行此操作的Web服务器似乎很疯狂。我认为IIS有一个系统可以在首次访问时缓存静态文件的压缩副本。mod_deflate没有提到这样的功能。
—
rjmunro
Apache的mod_deflate模块文档现在有自己的例子:httpd.apache.org/docs/2.4/mod/mod_deflate.html#precompressed
—
cweiske