Например, если запрос выполнен к изображению как так...
/static/images/00f37ac6291bb6e8_150.jpeg
Но версия миниатюры на 150 пкс еще не была сгенерирована и возвращает 404, я хотел бы иметь ее, пробуют базовое изображение в натуральную величину, которое всегда будет доступно в...
/static/images/00f37ac6291bb6e8.jpeg
как у меня может быть nginx, делают это?
Это - то, что я запустил, но я сталкиваюсь с проблемами, выясняющими regex. Я также не знаю - ли это лучший способ выполнить это.
location /static/ {
resolver 8.8.8.8;
try_files $uri @redirect;
proxy_pass https://s3.amazonaws.com/<buckets>$request_uri;
}
location @redirect {
rewrite ^(.*)(?=_)(\.*)$ https://s3.amazonaws.com/<buckets>$1;
}
Также это - то, что у меня есть для regexpal с этим regex... Я не могу выяснить, как захватить расширение файла.
Обновление:
Это - то, что я закончил тем, что делал, и это работало хорошо!
location /static/images/ {
resolver 8.8.8.8;
proxy_intercept_errors on;
proxy_pass https://s3.amazonaws.com/my-bucket$request_uri;
error_page 400 401 402 403 404 @redirect;
}
location @redirect {
rewrite ^(.*)\/(.*)(_)[0,1](.*)\.(.+)$ https://s3.amazonaws.com/my-bucket/images/$2.$5;
}
Я зашел на regex101.com , чтобы проверить это регулярное выражение ^ (. *) \ / (. *) (_) [0,1] ( . *) \. (. +) $
соответствует строке /static/images/00f37ac6291bb6e8_150.jpeg
. С этим соответствием $ 1 / $ 2. $ 5 будет путем к большему изображению.