2013-07-22 2 views
5

मैं एडब्ल्यूएस एस 3 से अपने आईजेको पर अपने django प्रोजेक्ट में वेबफोंट (विशेष रूप से, Fontawesome) होस्ट और सेवा करने की कोशिश कर रहा हूं, और मुझे डरावनी firefox cross-domain font-loading issue पर काबू पाने में कठिनाई हो रही है। मैंने सभी दस्तावेज, स्वीकृत समाधानों का प्रयास किया है और उनमें से कोई भी मेरे लिए काम नहीं कर रहा है।फ़ायरफ़ॉक्स वेबफॉन्ट 403 एस 3 कोर नियमों के बावजूद

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <CORSRule> 
     <AllowedOrigin>https://myapp.herokuapp.com</AllowedOrigin> 
     <AllowedOrigin>https://www.myapp.herokuapp.com</AllowedOrigin> 
     <AllowedOrigin>https://myapp.com</AllowedOrigin> 
     <AllowedOrigin>https://www.myapp.com</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <MaxAgeSeconds>3000</MaxAgeSeconds> 
     <AllowedHeader>Authorization</AllowedHeader> 
    </CORSRule> 
</CORSConfiguration> 

मैं इन सेटिंग्स में कई भिन्नताएं की कोशिश की है और फ़ायरफ़ॉक्स अभी भी मुझे एक HTTP 403 https://www.myapp.com करने से मना कर दे रहा है:

सुझाए गए समाधान मैं देख रखना मेरी S3 बाल्टी पर CORS कॉन्फ़िगरेशन संपादित करने के लिए है

Request URL: https://my_bucket.s3.amazonaws.com/css/fontawesome-webfont-webfont.ttf 
Request Method: GET 
Status Code: HTTP/1.1 403 Forbidden 

उस HTTP अनुरोध के साथ मुझे प्रतिक्रिया शीर्षकों में "एक्सेस-कंट्रोल-अनुमति-प्रमाण-पत्र: सत्य" मिल रहा है।

क्या कोई अन्य सीओआरएस नियम है जिसे मुझे एस 3 से फोंट स्वीकार करने के लिए फ़ायरफ़ॉक्स घोषित करने की आवश्यकता है? जब मैं फ़ॉन्ट भयानक मैं नहीं मिलता है कर्ल/कुछ भी इस समस्या का निवारण करने के लिए उपयोगी देखें:

> https://s3.amazonaws.com/my_bucket/font/fontawesome-webfont.eot 
* About to connect() to s3.amazonaws.com port 443 (#0) 
* Trying xxx.xx.xx.xxxx... connected 
* Connected to s3.amazonaws.com (xxx.xx.xx.xxx) port 443 (#0) 
* SSLv3, TLS handshake, Client hello (1): 
* SSLv3, TLS handshake, Server hello (2): 
* SSLv3, TLS handshake, CERT (11): 
* SSLv3, TLS handshake, Server finished (14): 
* SSLv3, TLS handshake, Client key exchange (16): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSL connection using DES-CBC3-SHA 
* Server certificate: 
*  subject: C=US; ST=Washington; L=Seattle; O=Amazon.com Inc.; CN=s3.amazonaws.com 
*  start date: 2010-10-08 00:00:00 GMT 
*  expire date: 2013-10-07 23:59:59 GMT 
*   common name: s3.amazonaws.com (matched) 
*  issuer: C=US; O=VeriSign, Inc.; OU=VeriSign Trust Network; OU=Terms of use at https://www.verisign.com/rpa (c)09; CN=VeriSign Class 3 Secure Server CA - G2 
*  SSL certificate verify ok. 
> GET /my_bucket/font/fontawesome-webfont.eot HTTP/1.1 
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 
> Host: s3.amazonaws.com 
> Accept: */* 
> Origin: https://www.myapp.com 
> 
< HTTP/1.1 200 OK 
< x-amz-id-2: XxMCWhqMsTGMMmAQnSHT/+RO7aluQSRyZ5wTAseMKM5cpavE+NkBQCuD8ykiIIDE 
< x-amz-request-id: 90FF2C1C85254815 
< Date: Mon, 22 Jul 2013 01:54:53 GMT 
< Access-Control-Allow-Origin: https://www.myapp.com 
< Access-Control-Allow-Methods: GET 
< Access-Control-Max-Age: 3000 
< Access-Control-Allow-Credentials: true 
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method 
< Last-Modified: Mon, 22 Jul 2013 01:44:31 GMT 
< ETag: "455808250694e5760bd92b3ce1f070b6" 
< Accept-Ranges: bytes 
< Content-Type: application/octet-stream 
< Content-Length: 25395 
< Server: AmazonS3 
< 
3cOb?LP&?S~FontAwesomeRegular"Version 1.00 2012&FontAwesome RegularBSGPɴbGbKV?????Y?D 

वहाँ पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति है कि इस काम के मिल सकता है स्थापित करने के लिए एक और रास्ता नहीं है?

+1

मुझे एक ही समस्या है और आपको आश्चर्य है कि क्या आपको कोई काम मिल रहा है। – Zane

+0

आपकी कॉन्फ़िगरेशन ठीक दिखता है। दो उदाहरणों में आप दिखाते हैं कि यूआरएल समान नहीं हैं, क्या आप वाकई सही फ़ाइल नाम का अनुरोध कर रहे हैं? – qff

उत्तर

1

यदि आप अपनी बाल्टी नीति में विशिष्ट HTTP रेफरर्स तक पहुंच प्रतिबंधित कर रहे हैं, तो अपनी बाल्टी यूआरएल को रेफरर सूची में भी जोड़ें। उदाहरण के लिए:

"Condition": { 
    "StringLike": { 
     "aws:Referer": [ 
      "http://my_bucket.s3.amazonaws.com/*", 
      "https://my_bucket.s3.amazonaws.com/*", 
      "http://www.example.com/*", 
      "https://www.example.com/*", 
     ] 
    } 
} 

फ़ायरफ़ॉक्स में प्रतिक्रिया शीर्षलेखों की जांच करें। फ़ॉन्ट के लिए रेफरर आपकी सीएसएस फ़ाइल है, जो एस 3 बाल्टी पर होस्ट किया गया है, न कि आपके डोमेन पर।