2015-10-07 8 views
9

Ich habe versucht, viele Lösungen auf Stackoverflow/Github für dieses Problem zu finden, aber ich kann es nicht zum Laufen bringen.Rails Assets Cloudfront Fontawesome CORS

Ich verwende font-awesome-rails und ich precompile meine Vermögenswerte für die Produktion. Ich habe Cloudfront in meiner Produktion Config für mein Vermögen gesetzt:

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

Wenn lade ich eine Seite (von Chrome/Firefox Safari OK mit CORS ist) ich diese gemeinsame Fehlermeldung:

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. 

ich habe bereits versucht zu:

  1. die gem rack-cors hinzufügen und change my config.ru withou t Erfolg
  2. ein after_filter-set the server headers ohne Erfolg Set
  3. Create an invalidation on CloudFront für die drei fontawesome Dateien ohne Erfolg

Eine Abhilfe wäre das fontawesome Juwel zu entfernen, und verwenden Sie stattdessen:

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

Aber ich würde lieber das Problem finden.

Dank

+0

benötigen eine CORS-Konfiguration auf dem AWS S3 Eimer hinzuzufügen. – typeoneerror

Antwort

3

Ich habe dieses Problem hatte und es wurde, indem Sie die folgenden Änderungen gelöst. Zunächst einmal setzen einen Header auf dem HTTP-Server add_header Access-Control-Allow-Origin *;

die komplette Konfiguration verwendet:

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

und dann die Ungültigkeit auf Cloudfront erstellen.

ps: Ich habe verwenden Rack-cors oder anderes Juwel nicht

+0

Wo sollten wir diesen Code einfügen? Zur Produktion.rb? oder Initialisierer? –

+0

@ Shalafister das sind Nginx Webserver-Konfigurationen. – Cyzanfar