我无法访问 nginx.config 文件,但我需要同时提供 webp 图像并增加缓存时间。我们制定了此规则,并且运行良好:
location ~* \.(png|jpe?g|gif)$ {
add_header Vary Accept;
default_type image/webp;
try_files $uri$webp $uri =404;
}
但添加此规则后,webp 图像将停止提供:
location ~* \.(png|jpe?g|gif)$ {
expires 365d;
}
是否可以合并这两条规则?我不想合并它们,因为更新此文件的人需要一段时间才能做出响应,从而导致网站崩溃。
我的问题是,这会起作用吗?
location ~* \.(png|jpe?g|gif)$ {
expires 365d;
add_header Vary Accept;
default_type image/webp;
try_files $uri$webp $uri =404;
}
答案1
location
对于任何给定的字符串或正则表达式,一个块中只能有一个server
。如果有两个相同的,则只使用第一个。后续的将永远不会匹配并被忽略。但 nginx 不会对此发出警告。
那么你必须将所需的指令合并到一个中location
。