我想为nginx提供的文件设置缓存标头。有没有办法根据类型为某些文件设置缓存标头?例如。我想将缓存标头设置为所有js文件,而不是其他文件。我不想根据文件所在的位置设置标题。
答案 0 :(得分:4)
我知道这已经过时但是地图和过期会自动使用Cache-Control Header而不需要任何额外的模块,你仍然可以通过add_header添加公共或私人
map $sent_http_content_type $expires {
application/pdf 42d;
application/zip 42d;
application/x-7z-compressed 42d;
application/x-rar-compressed 42d;
application/octet-stream 1M;
application/javascript 3M;
text/css 3M;
~image/ 3M;
~video/ 3M;
~audio/ 3M;
~text/ 1d; # html/php
default off;
}
expires $expires;
答案 1 :(得分:1)
您可以使用Headers More模块。它可以根据响应内容类型设置标题。
more_set_headers -t application/x-javascript 'Cache-Control: max-age=31536000'