我使用的是nginx 1.0.12并且设置如下:
location /protected/ {
expires 30d;
log_not_found off;
internal;
alias /var/www/files/uploads/;
}
并且正在请求这样的用户文件:
header('X-Accel-Redirect: http://example.com/adetwiler/files/example.png');
header('Content-type: image/png');
一切都很好,直到用户可以旋转图像。一旦他们旋转图像,我无法弄清楚如何获得文件的“新”版本,它仍然显示图像的旧版本,除非在浏览器上点击“刷新”。
我试图设置Cache-control:no-cache,Expires:Expires:Sat,26 Jul 1997 05:00:00 GMT,没有运气。
我尝试添加修改日期,如下所示:
header('X-Accel-Redirect: http://example.com/adetwiler/files/example.png?123456789');
每次尝试时都会导致图像加载。
我尝试将其添加到nginx配置中:
add_header Pragma public;
add_header Cache-Control "public, must-revalidate";
此时我感到茫然,我已经尝试了所有我能想到的东西。
所以我的问题是,有一种方法可以使用我当前的设置或类似于我的设置,在图像更新后使用较新版本的图像吗?
谢谢!
答案 0 :(得分:0)
看起来设置X-Accel-Buffering: no
作为标题告诉nginx根本不缓存响应。
https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/