我在我的几个站点中运行 YSlow,它报告一个 .js 文件未压缩。mod_deflate
当然是启用的(其他 html 和文本文件被压缩):
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/javascript application/ecmascript text/javascript text/x-javascript
DeflateCompressionLevel 6
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
当直接请求这个 .js 文件时,我使用 Firebug 查看 Apache 发送的 html 标头,并且似乎 Apache 没有发送任何 Content-type 标头指令。我想这就是它没有通过 deflate 过滤器进行压缩的原因。然后,我添加了
AddType application/javascript .js
在Apache的相应配置文件中,重新启动它,它仍然无法正常工作。请求文件时不发送 Content-Type 标头。
Apache 在 Linux 中运行,启用了 PHP(如果有帮助的话)。mod_mime
模块也被启用。