使用 nginx 时,gzip 对某些文件不起作用

使用 nginx 时,gzip 对某些文件不起作用

在我们的设置中,某些文件在传输到用户浏览器的过程中不会被 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;
        }

相关内容