2015-10-07 19 views
9

この問題については、stackoverflow/githubで見つかった多くのソリューションを試しましたが、動作させることができません。Rails assets Cloudfront fontawesome CORS

私はfont-awesome-railsを使用しており、私の資産をプロダクション用にプリコンパイルしています。 私は、生産の設定で自分の資産のCloudFrontのを設定しました:

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

(SafariはCORSでOKですのでクローム/ Firefoxのから)私はページをロードすると、私は、この一般的なエラーメッセージが出ます:

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-corschange my config.ruを追加withou

    <%= stylesheet_link_tag "//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css", :media => "all" %> 
    
    :3つのfontawesomeファイルの成功
  2. Create an invalidation on CloudFrontなしset the server headersからafter_filter成功

せずに回避策はfontawesome宝石を削除し、代わりに用いることであろう集合Tの成功

  • しかし、私はむしろ問題を見つけるだろう。

    おかげ

  • +0

    は、AWS S3バケットにCORS設定を追加する必要がある場合があります。 – typeoneerror

    答えて

    3

    私はこの問題を持っていたし、それは次の変更を行うことによって解決しました。まず第一に、あなたのhttpサーバ add_header Access-Control-Allow-Origin *;

    使用し、完全な構成にヘッダを設定します。

    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"; 
    } 
    

    して、CloudFrontの上の無効化を作成します。

    PS:私は、ラックCORSを使用していないか、他の宝石

    +0

    このコードをどこに入れるべきですか? production.rbに?または初期化子? –

    +0

    @ Shalafister'sは、nginx Webサーバーの設定です。 – Cyzanfar

    関連する問題