2010-04-11 8 views
17

मैंने इस साइट को अपने दोस्त के लिए बनाया है और मैंने इसे एक अमेज़ॅन एस 3 बाल्टी (http://ballard26.s3.amazonaws.com/index.html) पर अपलोड किया है और जब मैं उस साइट पर जाता हूं तो पृष्ठ सही ढंग से लोड नहीं होता है और मुझे नहीं पता कि क्यों। कोई विचार?अमेज़ॅन एस 3 सही ढंग से फाइलों की सेवा नहीं कर रहा है

उदाहरण के लिए, stylesheet.css सही ढंग से लोड नहीं होता है। यदि आप http://ballard26.s3.amazonaws.com/stylesheet.css पर जाते हैं, तो यह इसे सीएसएस के रूप में लोड करने की बजाय फ़ाइल डाउनलोड करता है।

+2

आपको हमें यह बताना होगा कि क्या गलत है। आप क्या देखने की उम्मीद करते हैं और वास्तव में आप जो देखते हैं उससे अलग कैसे है? – ChrisF

उत्तर

25

आपके द्वारा अपलोड की गई फ़ाइलों पर माइम प्रकार (HTTP सामग्री प्रकार शीर्षलेख) की जांच करें। एस 3 हमेशा उन्हें सही ढंग से सेट नहीं करता है। आपको उन्हें अपलोड एपीआई कॉल पर सेट करने की आवश्यकता हो सकती है। कुछ अपलोड पुस्तकालय आपके लिए यह करेंगे।

यदि माइम प्रकार S3 से ब्राउज़र से डाउनलोड किया जाता है तो माइम प्रकार सही नहीं होते हैं यदि माइम प्रकार सही ढंग से सेट नहीं होता है तो यह हमेशा सही ढंग से प्रस्तुत नहीं करेगा।

+0

या ... माइम-प्रकार सही हो सकता है, "अटैचमेंट" – pinoyyid

+0

पर सेट एक सामग्री-स्वभाव शीर्षलेख भी है, सभी शीर्षकों को तुरंत देखने के लिए मैं शानदार तरीका कर्ल का उपयोग करना चाहता हूं। उदाहरण के लिए: $ curl-i http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css - '-I' जोड़ना सुनिश्चित करें ताकि शीर्षलेख देखे जाएं और सामग्री नहीं डॉक्टर का –

4

मुझे लगता है कि फ़ाइल अपलोड करते समय आपने फ़ाइल के माइम-प्रकार को ठीक से निर्दिष्ट या सेट नहीं किया था। नतीजतन, यह binary/octet-stream पर डिफ़ॉल्ट है।

जब आप अपना पृष्ठ लोड करते हैं, तो आपका ब्राउज़र यह मान रहा है कि आपके द्वारा निर्दिष्ट स्टाइलशीट एक सीएसएस फ़ाइल नहीं है, क्योंकि इसे text/css के अलावा किसी सामग्री-प्रकार के साथ परोसा जा रहा है, और इसलिए स्टाइल शीट लागू नहीं कर रहा है।

2

मेरी सीएसएस/जेएस फाइलों की गलत सामग्री-प्रकार के कारण आईई में भी यही समस्या थी।

s3 = Aws::S3Interface.new($s3[:s3_access_key_id],$s3[:s3_secret_access_key],{:multi_thread => true}); 
s3.put($s3[:s3_bucket],s3_path,file[:tempfile].read,{'x-amz-acl' => 'public-read', 'content-type' => 'text/css' }) 

सूचना S3 मेटाडाटा के लिए अलग अलग वाक्य रचना: की एक MIME प्रकार के

'content-type' => 'text/css' 
12

सीएसएस फ़ाइलें डिफ़ॉल्ट

आप रूबी और एडब्ल्यूएस मणि का उपयोग कर रहे हैं, तो कोड इस का उपयोग octet/binary। इसे ठीक करने के लिए, अपने एडब्ल्यूएस प्रबंधन कंसोल में साइन इन करें, अमेज़ॅन एस 3 अनुभाग पर जाएं और प्रासंगिक बाल्टी खोजें। सीएसएस फ़ाइल का पता लगाएँ और गुणों का चयन करें। मेटाडाटा के तहत, मान के लिए सामग्री प्रकार कुंजी सेट: text/css

आप मैक ओएस एक्स के लिए आतंक का संचारित एप्लिकेशन का उपयोग करते हैं, तो आप Content-Type: text/css की सीएसएस फ़ाइलें जो सही MIME प्रकार हर बार लागू होगी के लिए एक कस्टम अपलोड हैडर सेट कर सकते हैं आप एक फ़ाइल अपलोड करें, इसे हर बार अपने कंसोल में मैन्युअल रूप से सेट करने की आवश्यकता को हटा दें।

इस पर अधिक जानकारी एडम विल्कोक्स के blog post में है।

+2

बस यह जोड़ना चाहता था कि प्रेषण उत्तर यह मेरे लिए हल किया गया था। एक सीएसएस फ़ाइल कुछ कारणों से ऑक्टेट/बाइनरी ट्रिगर कर रही थी, भले ही अन्य सभी सही तरीके से चल रहे थे जो मैं अभी भी समझा नहीं सकता। ट्रांसमिशन में इस मुद्दे को मजबूर करने से मेरा ग्ल्यूटस बचाया गया। – jerclarke

संबंधित मुद्दे