我尝试了许多在stackoverflow/github上找到的解决方案,但是我无法使它工作。
我正在使用font-awesome-rails,并且我为生产环境预编译我的资产。 我已经在我的生产配置中设置了CloudFront来处理我的资产:
config.action_controller.asset_host = "https://XXXX.cloudfront.net"
当我加载页面时(来自Chrome / Firefox,因为Safari支持CORS),我会收到这个常见的错误消息:
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.
我已经尝试过:
- 添加rack-cors宝石并更改我的config.ru文件,但没有成功。
- 设置一个
after_filter
来设置服务器头信息,但没有成功。 - 针对三个fontawesome文件在CloudFront上创建无效ation,但没有成功。
一种解决方法是删除fontawesome宝石,改用:
<%= stylesheet_link_tag "//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css", :media => "all" %>
但我更愿意找到问题所在。
谢谢