NGINX - добавление суффикса к статическому расположению файла - PullRequest
0 голосов
/ 18 июня 2019

Я использую nginx для сервера статических файлов изображений. В моем каталоге все изображения хранятся с расширением _.txt (в основном переименовано в .txt). Например: background.png будет сохранен как background.png .txt

Как мне перенаправить поиск для domain.com/images/background.png для поиска /static/images/background.png_.txt

Вот мой конфиг nginx ...

    location /images/  {
        alias    /static/images/;
        access_log off;
    }       

1 Ответ

1 голос
/ 18 июня 2019

Это работает на моем сервере.Он просто принимает запрос чего-либо в каталоге images и проверяет, существует ли он, затем проверяет, существует ли он с расширением .txt, и, наконец, выдает ошибку 404, если они не найдены.

location /images/ {
default_type "image/gif";
try_files $uri $uri.txt $uri =404;
}

Просто убедитесь, что вы не дублируете блок location/images.Добавьте его, если его там нет, но он должен быть уже, поэтому просто добавьте к нему строку try_files.

Как я уже писал в комментарии, я был бы удивлен, если бы ваш сервер не выполнял поиск в static при переходе в каталог изображений.Однако, если код, которым я поделился, не работает, вы можете добавить путь к вашим измененным файлам изображений в блок, например:

location /images/ {
root /home/username/path_to_site/domain.com/static/images;
default_type "image/gif";
try_files $uri $uri.txt $uri =404;
}

Редактировать Если вы изучите заголовки ответа, некоторые браузеры показывают изображения, обслуживаемые таким образом, как content-type:text/plain.Один из способов переопределить это - указать типы непосредственно в блоке расположения изображений:

location /images/ {
default_type "image/gif";
try_files $uri $uri.txt $uri =404;
types {
    text/plain    gif;
    image/jpg     jpeg jpg;
    image/png     png;
    image/gif     gif;
    image/x-icon  ico;
 }
}

Эти типы определены в другом месте в nginx, но это проще, если вы не хотите делать операции в кишкахваш сервер.Важная строка - text/plain gif;.Это определяет любые текстовые файлы, найденные в каталоге изображений, как image/gif.

Заключительные мысли: это может быть лучше сделать как переписать , однако, возможно, кто-то ещезнает детали этого метода.

...