2012-11-22 10 views
14

Ho un server con nginx. E ho un sacco di immagini - png e jpg salvati come file senza estensione (come "123123123_321312").Come specificare il tipo di file senza estensione nella configurazione NGINX?

Quando uso tag "img" nella pagina html, ricevo messaggi theese in consolle:

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

C'è un modo per rendere nginx aggiungere un'intestazione con il corretto tipo MIME del file richiesto?

+0

Ok, probabilmente nginx non è in grado di inviare automaticamente intestazioni mime in base al contenuto effettivo del file. Quindi l'unico modo per rimuovere quegli errori è come ha detto Demikl: usa sempre JPEG-mimeheader. –

risposta

15

si dovrebbe usare la direttiva default_type:

server { 
    ... 
    default_type text/html; 

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

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

Sì, sarebbe la soluzione se i file sono in cartelle diverse. Ma nel mio caso ho tutti i file in un posto. –

+1

Sembra che la specifica del tipo MIME 'image/jpeg' anche se il file reale sia un'immagine PNG non genera alcun registro di avviso. Appena testato con Google Chrome. –

+2

Nel caso in cui qualcun altro fosse confuso da questo (come ho fatto io), assicurati di fare un aggiornamento completo nel tuo browser dopo aver impostato default_type e ricaricato la configurazione di nginx. Cancella la cache o sposta F5 in Chrome, altrimenti il ​​browser riceverà 304 e supporterà che il tipo di contenuto originale sia ancora valido. – bsa

0

Devo anche aggiungere.

La soluzione Mickaël Le Baillif funziona anche se la pagina Web viene scaricata anziché eseguita. Perché nginx pensa che dovrebbe essere default_type application/octet-stream; anche se la documentazione ufficiale dice:

Per effettuare una particolare posizione emettono il MIME tipo “application/octet-stream” per tutte le richieste, la seguente configurazione può essere utilizzata

e punti di location /download/ Questo dà anche:

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

Nginx ver sione: 1.6.2

Problemi correlati