2015-10-07 17 views
9

Bu sorun için stackoverflow/github'da çok fazla çözüm buldum ama işe yaramayacağım.Raylar varlıkları Cloudfront fontawesome CORS

font-awesome-rails kullanıyorum ve varlıklarını üretim için önceden derledim. benim üretim config benim varlıklar için CloudFront belirledik:

config.action_controller.asset_host = "https://XXXX.cloudfront.net" 

Ben bu ortak hata mesajı alıyorum (Safari CORS Tamam çünkü Krom/Firefox'tan) Ben bir sayfayı yüklediğinizde:

Font from origin 'https://XXXX.cloudfront.net' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://example.com' is therefore not allowed access. 

  1. gem rack-cors ve change my config.ru ekle withou:

    zaten çalıştı t başarı

  2. başarı

olmaksızın üç fontawesome dosyalar için başarı

  • Create an invalidation on CloudFront olmadan set the server headers bir after_filter ayarlayın Bir geçici çözüm fontawesome mücevher kaldırmak ve bunun yerine kullanmak olacaktır:

    <%= stylesheet_link_tag "//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css", :media => "all" %> 
    

    Ancak sorunu bulmayı tercih ediyorum.

    Teşekkür

  • +0

    kullanmıyordu. – typeoneerror

    cevap

    3

    ben bu sorunu vardı ve onu aşağıdaki değişiklikleri yaparak çözüldü. Her şeyden önce, sizin http sunucusu add_header Access-Control-Allow-Origin *;

    kullanılan komple yapılandırma üzerinde bir başlık ayarlayın:

    location ~* \.(ttf|ttc|otf|eot|woff|woff2|svg|font.css)$ { 
        add_header Access-Control-Allow-Origin *; 
        expires max; 
        allow all; 
        access_log off; 
        add_header Cache-Control "public"; 
    } 
    

    ve sonra CloudFront üzerinde invalidation oluşturun.

    ps: Ben AWS S3 kova üzerine bir CORS yapılandırma eklemek gerekir Olabilir rafa Cors veya başka bir mücevher

    +0

    Bu kodu nereye koymalıyız? Production.rb için? veya başlatıcı? –

    +0

    @ Shalafister'in bunlar nginx web sunucusu yapılandırmalarıdır. – Cyzanfar