2012-11-22 19 views
14

Mam serwer z nginx. I mam dużo zdjęć - pngs i jpgs zapisane jako pliki bez rozszerzenia (np. "123123123_321312").Jak określić typ MIME plików bez rozszerzenia w konfiguracji NGINX?

Gdy używam tag „img” w stronę html, mam theese wiadomości w konsoli:

 
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". 

Czy istnieje sposób, aby dodać nagłówek nginx z prawidłowego typu MIME do żądanego pliku?

+0

OK, prawdopodobnie nginx nie może automatycznie wysyłać nagłówków mime zależy od rzeczywistej zawartości pliku. Tak więc jedynym sposobem na usunięcie tych błędów jest wypowiedź Demikl - używaj zawsze mimeheadera JPEG. –

Odpowiedz

15

należy użyć dyrektywy default_type:

server { 
    ... 
    default_type text/html; 

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

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

Tak, to byłoby rozwiązanie, jeśli pliki znajdują się w różnych folderach. Ale w moim przypadku mam wszystkie pliki w jednym miejscu. –

+1

Wygląda na to, że określenie typu "image/jpeg" typu MIME, nawet jeśli rzeczywisty plik jest obrazem PNG, nie generuje żadnych dzienników ostrzeżeń. Właśnie przetestowano w Google Chrome. –

+2

Jeśli ktoś się pomylił (tak jak ja), odśwież stronę w przeglądarce po ustawieniu default_type i ponownym wczytaniu konfiguracji nginx. Wyczyść pamięć podręczną lub Shift-F5 w Chrome, w przeciwnym razie przeglądarka otrzyma numer 304 i założy, że oryginalny typ zawartości jest nadal ważny. – bsa

0

Muszę też dodać.

Rozwiązanie Mickaël Le Baillif działa również wtedy, gdy twoja strona internetowa jest pobierana zamiast wykonywana. Ponieważ nginx uważa, że ​​powinna ona być default_type application/octet-stream; choć oficjalna dokumentacja mówi:

Aby dana lokalizacja emitować „application/octet-stream” MIME typ dla wszystkich żądań, następująca konfiguracja może być stosowany

i wskazuje na location /download/ daje również:

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

Nginx ver sion: 1.6.2

Powiązane problemy