我使用的是最低版本的 Ubuntu 服务器 16.04,上面有 Nginx 1.10.3(我两天前从 Apache 迁移到这个版本)。在这个环境中,我运行了一个最低版本的 Wordpress 网站(5 个插件,没有自定义)。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
location ~* \.(pdf)$ {
expires 30d;
}
我将该代码粘贴到 Nginx 文件中的服务器块中default.conf
(以便在需要时将其与其他网站一起使用),然后重新启动:
systemctl restart nginx.service
然而,当运行 GPI 测试时,我仍然会得到许多 jpg 文件的“利用浏览器缓存”,即使“jpg”已经包含在指令中。
到目前为止,我找到的所有文档都与我已经尝试过的方法完全一致。有什么想法吗?也许大多数文档都过时了?也许这是 Nginx 当前版本中的一个错误?
答案1
我必须将缓存过期指令放在server
块中而不是http
块中。
我把代码放在 site-conf 服务器块的末尾,重新启动 Nginx 和 GPI 测试,没有 logner 显示通知。
location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff)$ {
expires 365d;
}
location ~* \.(pdf)$ {
expires 30d;
}
} # domain.tld.conf server block closure.