2017-06-29 36 views
1

當在CDN上託管FontAwesome時,如果在CDN的域與服務器的域不匹配時如何允許它加載字體?如何允許FontAwesome從不同的域中加載字體

我的媒體託管在S3存儲桶中,由Cloudfront端點提供服務。我的網頁服務於example.com,包含指向此Cloudfront端點的鏈接,並且對此端點的所有初始媒體請求都成功。不過,如果我觸發試圖使新FontAwesome內容,使其嘗試加載字體任何JS,我得到這樣一個錯誤:

Access to Font at 'http://lkfejwifisj.cloudfront.net/font-awesome-4.2.0/fonts/fontawesome-webfont.d95d6f5d5ab7.woff?v=4.2.0' from origin 'http://example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access. 

我做我的S3區的CORS政策,開放地與配置:

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

但是,這並沒有解決問題。

我使用Chrome作爲我的瀏覽器,顯然這種類型的錯誤已被提及manymany之前。但是,所提出的解決方案都不適用,或者不適合我。

我該如何解決這個問題?

爲什麼Chrome會在所請求的資源中顯示「否」Access-Control-Allow-Origin'標頭存在「,當我明確允許CORS配置中的所有源存在時?

回答

1

事實證明,我的CORSConfiguration是正確的,並且實際上修復了這個問題,但我的瀏覽器正在緩存舊請求,所以我仍然看到相同的錯誤。

如果我在隱身瀏覽器中加載頁面,確保清除緩存,我不會收到錯誤消息。