.png
例如,如果目录中的所有文件有关键字,则仅加载它们apple-
,如果没有,则跳过。
例如我们有:
location ~* \.(?:png|xml|ico|svg|webmanifest)$ {
alias /var/www/site.com/htdocs/sites/all/themes/dev/img/favicons;
try_files $uri $uri/ @rewrite;
expires 365d;
add_header ETag "";
add_header Pragma public;
add_header Cache-Control "max-age=31449600, no-transform, public";
log_not_found off;
access_log off;
}
但这会加载所有.png
文件。因此,例如类似这样的方法|apple-*.png|
不起作用。需要这个是因为有十几个apple-touch-icon.png
文件apple-touch-icon-76x76.png
需要从同一目录加载,但跳过其他文件。
答案1
正则表达式apple-*.png
匹配带有大量连字符的文件名(例如apple------.png
)。这*
意味着零个或多个前一个字符。
您可以使用.*
来匹配零个或多个任意字符,或者[^/]+
匹配至少一个非 的字符/
。
例如:
location ~* apple-[^/]+\.png$ { ... }
要将该约束应用于.png
文件,但也允许其他扩展(不受约束),请使用:
location ~* apple-[^/]+\.png$|\.(xml|ico|svg|webmanifest)$ { ... }