nginx:gizip_static:似乎无法正常工作

时间:2012-01-06 20:09:17

标签: ruby-on-rails nginx gzip unicorn

好吧我的堆栈是Ubuntu,Nginx 1和Unicorn。我想让Nginx提供静态内容的预编译gzip。

相关的nginx配置:

location ~ ^/assets/ {
  gzip_static on;
  gzip_http_version   1.1;
  gzip_proxied        expired no-cache no-store private auth;
  gzip_disable        "MSIE [1-6]\.";
  gzip_vary           on;
  expires 24h;
  add_header Cache-Control public;
}

然后从另一个问题我跑过strace看他们是否被请求,结果:

open("/media/sf_ape/public/assets/application-ae30e133eabbb10d9464189d3fb71e25.js.gz", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 9

我已验证此文件存在。但是,当我观察访问日志时,它会传递常规.js文件,而不是.gz文件。我已经验证了请求的头指定了gzip,并且响应头现在显示为gzip。我已经搜索了很多,但到目前为止我还没有找到问题的答案。我本可以错过它,但任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

我最终想到了这一点。运行rake资产时:预编译所有静态资产都会被编译并移动到/ public。例如,.js和.js.gz具有完全相同的时间戳。一旦我触摸* .gz,一切都正确。希望能节省一些时间。