Как указать mimetype файлов без расширения в конфигурации NGINX?

У меня есть сервер с nginx. И у меня много изображений - pngs и jpg сохраняются как файлы без расширения (например, "123123123_321312" ).

Когда я использую тег "img" на странице html, я получаю эти сообщения в консоли:

Resource interpreted as Image but transferred with MIME type application/octet-stream: "http://xxxx/images/1350808948_997628". jquery.js:2
Resource interpreted as Image but transferred with MIME type application/octet-stream: "http://xxxx/images/1343808569_937350". 

Есть ли способ сделать nginx добавить заголовок с правильным типом файла запрошенного файла?

Ответы

Ответ 1

Вы должны использовать директиву default_type:

server {
   ...
   default_type text/html;

   location /images/png {
      default_type image/png;
   }

   location /images/jpg {
      default_type image/jpeg;
   }
}

Ответ 2

Мне также нужно добавить.

Решение Mickaël Le Baillif также работает, если ваша веб-страница загружается, а не выполняется. Поскольку nginx считает, что он должен быть default_type application/octet-stream;, хотя официальная документация говорит:

Чтобы сделать конкретное местоположение, выпустите "приложение/октет-поток" MIME type для всех запросов, можно использовать следующую конфигурацию

И указывает на location /download/ Это также дает:

Resource interpreted as Image but transferred with MIME type application/octet-stream: "http://xxxxx.com/"

Версия Nginx: 1.6.2