2

我在我的几个站点中运行 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模块也被启用。

4

1 回答 1

0

显然,该文件是从浏览器的缓存中提供的,我没有在 Firebug 窗口中看到 304 状态响应。清空缓存后,确实返回了js文件,内容类型为application/javascript,并被gzip压缩。

于 2013-07-14T10:53:13.173 回答