Это работает на моем сервере.Он просто принимает запрос чего-либо в каталоге 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
.
Заключительные мысли: это может быть лучше сделать как переписать , однако, возможно, кто-то ещезнает детали этого метода.