我在我的几个网站上运行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
我使用Firebug查看Apache直接请求此.js文件时发送的html标头,而且似乎Apache不发送任何Content-type标头指令。我想这就是它不通过压缩过滤器进行压缩的原因。然后,我添加了
AddType application/javascript .js
在Apache的相应配置文件中,重新启动它仍然无法正常工作。请求文件时不会发送Content-Type标头。
Apache在Linux中运行,启用了PHP(如果这有帮助的话)。 mod_mime
模块也已启用。
答案 0 :(得分:0)
显然,该文件是从浏览器的缓存中提供的,我在Firebug窗口中没有看到304状态响应。清空缓存后,js文件确实返回了应用程序/ javascript内容类型并被gzip压缩。