Nginx переписывают, удаляя размеры изображения из имени файла

Например, если запрос выполнен к изображению как так...

/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... Я не могу выяснить, как захватить расширение файла.

regexpal attemp1

Обновление:

Это - то, что я закончил тем, что делал, и это работало хорошо!

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;
}
0
задан 26 May 2015 в 18:41
1 ответ

Я зашел на regex101.com , чтобы проверить это регулярное выражение ^ (. *) \ / (. *) (_) [0,1] ( . *) \. (. +) $ соответствует строке /static/images/00f37ac6291bb6e8_150.jpeg . С этим соответствием $ 1 / $ 2. $ 5 будет путем к большему изображению.

1
ответ дан 4 December 2019 в 16:57

Теги

Похожие вопросы