在我们的设置中,某些文件在传输到用户浏览器的过程中不会被 gzip 压缩。
例如
http://myhostname.com/css/build/20120904-1.css
http://myhostname.com/js/dojo/dn/main.js?20120904-1
http://myhostname.com/js/jquery-min/compiled.js?20120725-4
无法压缩。
我当前的配置:
location ~* \.(js|css|png|jpg|jpeg|gif|ico)\.*+$ {
if ($args ~ [0-9]\.*+) {
expires max;
break;
}
expires max;
log_not_found off;
gzip on;
}
需要调整什么才能使 gzip 运行?我已经尝试了其他几个选项,但不想继续尝试和错误。
非常感谢。
更多信息:也许还有另一个问题。Firebug 和 pingdom 工具向我显示了压缩后的大小,而 Chrome Developer Bar 和 Google PageSpeed Insights 则显示“未激活压缩”
为了方便起见,网站链接为http://diginights.com
答案1
您需要设置gzip_类型application/x-javascript text/css;默认情况下,nginx 只会对 text/html 进行 gzip 压缩。
答案2
location ~* \.(js|css|png|jpg|jpeg|gif|ico)\.*+$ {
这个正则表达式根本不匹配您的示例请求。
正确的那一个:
location ~* \.(?:js|css|png|jpe?g|gif|ico)$ {
答案3
这是因为您的配置似乎告诉它不要对名称中包含数字 0-9 的任何文件执行此操作。
删除整个部分;无论如何它基本上是多余的,并且几乎肯定不会做任何你想要的事情。
if ($args ~ [0-9]\.*+) {
expires max;
break;
}