2012-11-22 25 views
14

मेरे पास nginx के साथ एक सर्वर है। और मेरे पास बहुत सारी छवियां हैं - पीएनजी और जेपीजी बिना किसी एक्सटेंशन वाले फाइलों के रूप में सहेजी गई हैं (जैसे "123123123_321312")।एनजीआईएनएक्स कॉन्फ़िगरेशन में कोई एक्सटेंशन वाले फ़ाइलों के mimetype को कैसे निर्दिष्ट करें?

जब मैं टैग "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 अनुरोध की गई फ़ाइल का सही माइम प्रकार के साथ शीर्ष लेख बनाने के लिए एक तरीका है?

server { 
    ... 
    default_type text/html; 

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

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

ठीक है, शायद nginx स्वचालित रूप से माइम हेडर भेज नहीं सकता है फ़ाइल वास्तविक सामग्री पर निर्भर करता है। तो उन त्रुटियों को हटाने का एकमात्र तरीका डेमिकल ने कहा - हमेशा जेपीईजी-माइमेहेडर का उपयोग करें। –

उत्तर

15

आप default_type निर्देश का उपयोग करना चाहिए।

मिकेल ले बेलीफ समाधान भी काम करता है यदि आपका वेब पेज निष्पादित करने के बजाए डाउनलोड किया गया है। क्योंकि nginx मानना ​​है कि यह default_type application/octet-stream; होना चाहिए, भले ही आधिकारिक दस्तावेज कहते हैं:

एक विशेष स्थान सभी अनुरोधों के लिए "application/ओकटेट धारा" माइम प्रकार का उत्सर्जन करने के लिए, निम्न कॉन्फ़िगरेशन

इस्तेमाल किया जा सकता

और अंक location /download/ को यह भी देता है:

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

Nginx ver सायन: 1.6.2

+0

हां, यह अलग-अलग फ़ोल्डर्स में फाइलों का समाधान होगा। लेकिन मेरे मामले में मेरे पास एक ही स्थान पर सभी फाइलें हैं। –

+1

ऐसा लगता है कि MIME-type 'image/jpeg' निर्दिष्ट करना भले ही वास्तविक फ़ाइल एक पीएनजी छवि है, कोई चेतावनी लॉग उत्पन्न नहीं करती है। बस Google क्रोम के साथ परीक्षण किया। –

+2

यदि किसी और ने इस से भ्रमित हो (जैसे मैंने किया), तो डिफ़ॉल्ट_ टाइप करने और nginx कॉन्फ़िगरेशन को पुनः लोड करने के बाद अपने ब्राउज़र में पूर्ण रीफ्रेश करना सुनिश्चित करें। या तो क्रोम में कैश, या शिफ्ट-एफ 5 साफ़ करें, अन्यथा ब्राउज़र को 304 मिलेगा और मूल सामग्री प्रकार अभी भी मान्य है मान लें। – bsa

0

मैं भी जोड़ने के लिए: