I tried a lot of solutions found on stackoverflow/github for this issue but I can't get it to work.
I'm using font-awesome-rails and I precompile my assets for production. I've set CloudFront for my assets in my production config:
config.action_controller.asset_host = "https://XXXX.cloudfront.net"
When I load a page (from Chrome/Firefox because Safari is OK with CORS) I get this common error message :
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.
I already tried to :
after_filter
to set the server headers without successA workaround would be to remove the fontawesome gem and use instead:
<%= stylesheet_link_tag "//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css", :media => "all" %>
But I'd rather find the issue.
Thanks
I have had this issue and it was solved by doing the following changes. First of all, set a header on your http server
add_header Access-Control-Allow-Origin *;
the complete configuration used:
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";
}
and then create the invalidation on Cloudfront.
ps: I did not use rack-cors or any other gem
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With