2012-01-30 16 views
6
<link rel="stylesheet/less" href="http://mycdn.s3.amazon.com/css/web/style.less"> 
<script src="http://mycdn.s3.amazon.com/css/less-1.1.5.min.js"></script> 

जब मैं अपने CDN में मेरी .less फ़ाइल डाल दिया, यह कहते हैं:Less.js सीडीएन के साथ काम नहीं करता है?

XMLHttpRequest http://mycdn.s3.amazonaws.com/media/css/bootstrap/lib/bootstrap.less लोड नहीं कर सकता। उत्पत्ति http://mydomain.com एक्सेस-कंट्रोल-अनुमति-उत्पत्ति द्वारा अनुमत नहीं है।

क्यों? मैं यह कैसे तय करुं? मैं सर्वर पक्ष पर .css फ़ाइलों को संकलित नहीं करना चाहता हूं। मैं उन्हें ग्राहक पक्ष रखना चाहता हूं।

+0

संभावित डुप्लिकेट http://stackoverflow.com/questions/8176913/xmlhttprequest-origin-is-not-allowed-by-access-control-allow-origin –

+1

यहां समाप्त होने वाले किसी और के लिए एक नोट पर: मेरे पास है मेरे वेब होस्ट के वेब सर्वर पर एक ही त्रुटि प्राप्त हुई। यह गलती से खाली प्रतिक्रिया भेज रहा था क्योंकि '.less' फ़ाइल/माइम प्रकार अज्ञात था। ठीक से सेवा करने के लिए वेब सर्वर को कॉन्फ़िगर करना .लेस फाइलें इसे ठीक करती हैं। (यह एक क्रॉस-डोमेन अनुरोध नहीं था, सभी '.js'/'.less' फ़ाइलों को एक ही फ़ोल्डर से परोसा जाता था।) –

उत्तर

4

MDN से यह नहीं बल्कि लंबा लेख आप समझ क्या हो रहा है में मदद मिलेगी - https://developer.mozilla.org/En/HTTP_access_control

मूल रूप से क्रॉस-डोमेन सुरक्षा मॉडल आई है

आप कर रहे हैं अटल है कि आप नहीं चाहते हैं सर्वर पर सीएसएस संकलित करने के लिए, आप इसे अपने उप-डोमेन से सेवा देने का प्रयास कर सकते हैं यानी अमेज़ॅन सीडीएन में एक सब-डोमेन मैप करें लेकिन मुझे यकीन नहीं है कि आपकी समस्या ठीक हो जाएगी।

मैं वास्तव में सवाल करता हूं कि आप सीएसएस सर्वर-पक्ष को संकलित क्यों नहीं करना चाहते हैं क्योंकि इससे आपके आगंतुकों के लिए सबसे अच्छा प्रदर्शन होगा और आपको आसानी से सीडीएन पर सीएसएस होस्ट करने में सक्षम बनाता है।

एचटीएमएल के बाद, सीएसएस ब्राउज़र में आने के लिए अगली सबसे महत्वपूर्ण वस्तु है, इसलिए यह जेएस को उस मिश्रण में डालने से लेआउट शुरू कर सकता है, जिसे आप धीमा कर रहे हैं (जेएस ब्लॉक कर सकते हैं कुछ ब्राउज़रों में समानांतर डाउनलोड, और इसे निष्पादित करते समय UI थ्रेड को अवरुद्ध कर देगा)

+1

सीएसएस को पूर्व-संकलित करने का एक अन्य कारण: उपयोगकर्ता ने जावास्क्रिप्ट को अक्षम कर दिया हो सकता है (http: // noscript .net)। नतीजतन, कम सीएसएस को पार्स नहीं किया जाएगा। –

+0

क्या आपको लगता है कि अमेज़ॅन सीडीएन के लिए उप-डोमेन समस्या का समाधान करता है? – TIMEX

+1

आप निम्न HTTP शीर्षलेख 'एक्सेस-कंट्रोल-अनुमति-उत्पत्ति: http: // mycdn.s3.amazon.com' –

0

यदि आप क्रॉस डोमेन एक्सेस को ठीक करना चाहते हैं तो आपको क्रॉस ओरिजिनल रिसोर्स शेयरिंग (http://en.wikipedia.org जैसी चीज़ों को देखना होगा।/विकी/क्रॉस-ओरिजिन_Resource_Sharing) लेकिन यह केवल आधुनिक ब्राउज़र, या JSONP द्वारा समर्थित है, लेकिन यह आपके सीडीएन के साथ ऐसा नहीं होगा।

मुझे @ एंडी डेविस से सहमत होना है कि आप इस संकल्प को ठीक करने के बाद क्यों नहीं कर रहे हैं। क्या यह फ़ाइल आकार को वितरित करने के कारण है या आप संकलित नहीं कर सकते हैं। जब तक आप फ़ाइलों को लाइव नहीं करते हैं? विजुअल स्टूडियो में आप http://www.mindscapehq.com/products/web-workbench जैसे एडिन का उपयोग कर सकते हैं जो परिवर्तन होने पर संकलित होगा।

4

अमेज़न S3 अब समर्थन करता है, क्रॉस ओरिजिन रिसोर्स शेयरिंग: http://aws.typepad.com/aws/2012/08/amazon-s3-cross-origin-resource-sharing.html

निर्देशों का पालन करें और अपने बाल्टी के लिए एक CORS विन्यास विकल्प समस्या को ठीक करना चाहिए जोड़ें।

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