httpd.conf 中的以下配置仅 gzip css 和 html,而不是 javascript,有什么想法吗?
AddOutputFilterByType DEFLATE text/html text/plain text/javascript text/css
AddOutputFilterByType DEFLATE application/x-javascript
答案1
这很可能是因为 Javascript 的 MIME 类型竞争激烈。
尝试添加application/javascript
和text/x-js
(以及application/x-javascript
)
尽管如此,更可靠的方法可能是根据.js
文件扩展名进行过滤。Request_URI
有关更多信息,请参阅指令 (http://httpd.apache.org/docs/2.0/mod/mod_deflate.html) - 如果您使用的重写 URL 不使用.js
JavaScript 文件扩展名,则这可能不起作用。
如果这不起作用,那么您的 Linux 发行版可能对 JavaScript 使用了完全不同的 MIME 类型。TypesConfig
在您的配置文件中找到该指令,并查看它如何定义 JavaScript。然后也添加该 MIME 类型。
答案2
这可能是你最好的方法:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.[0678] no-gzip
BrowserMatch \bMSIE\s(7|8) !no-gzip !gzip-only-text/html
Header set Vary *
DeflateCompressionLevel 1
Internet Explorer(某些版本)无法很好地处理繁忙压缩,因此最好根据浏览器逐个进行压缩。这些设置来自拥有大量客户的高流量网站 - 并且是我们尝试过的唯一 100% 有效的设置。