在ubuntu 12.10上运行Nginx 1.4.1
需要有条件地发送expires头并基于http响应的mime类型/内容类型.
if ($sent_http_content_type = "text/css") {
expires 7d;
}
即使$sent_http_content_type包含“text / css”,也不会发送过期标头
如何解决这个问题?
检查文件扩展名是不够的,因为在我的应用程序js,css中,图像是从PHP动态生成的.所以需要检查mime并根据它添加标题.
最佳答案
截至Nginx 1.7.9:
map $sent_http_content_type $expires {
default off;
application/pdf 42d;
~image/ max;
}
expires $expires;
注意:$sent_http_content_type有效,但在服务器处理完请求之前无法访问它…
答案是指向application / pdf的map条目,它允许日期值,或者甚至可以是application / pdf modified 42d例如