CDN Sumo heroku插件和字体资产

时间:2013-06-12 08:55:06

标签: ruby-on-rails-3 heroku font-face cdn font-awesome

我正在尝试为Heroku中托管的Rails3应用程序配置font-awesome并使用CDN Sumo插件(使用cloudfront CDN)。

问题是Firefox没有加载字体资产。我认为问题是Firefox中的“Access-Control-Allow-Origin”问题。但我无法通过使用font_assets gem或在Cloudfront中设置CORS策略来修复它(我无法访问它,因为我正在使用CDN Sumo插件)。

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

确保Access-Control-Allow-Origin标题由托管字体的服务器设置。

如果需要更改原始服务器,可以通过CDN Sumo仪表板配置原始服务器。

CDN Sumo目前不支持自定义CORS策略。

作为参考,这些链接可能很有用:

Setting CORS for rails apps

Firefox and CORS

Heroku / CDN / fonts

答案 1 :(得分:2)

我刚刚发现支持开箱即用的CORS的优秀(和免费)CDNJS(由Cloudflare提供支持)。

对于Rails应用程序,在布局文件中添加字体很棒的CSS链接标记,如下所示:

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

(当然,如果您正在使用资产管道,请确保从那里删除font-awesome。)

您可以继续将CDN Sumo用于其余资产。

答案 2 :(得分:1)

我在Heroku上使用Rails 3应用程序遇到了同样的问题; Font-Awesome图标没有显示,因为我通过Sumo CDN运行我的资产。

有几个与此相关的回复,其中一个是在你的application_controller中设置一个after_filter来设置标题值(通过freemanoid),但这对我不起作用,我不得不使用建议的自定义中间件作者:Peter Marklund。

这两个解决方案都在Rails 3.1版本下发布: How to set access-control-allow-origin in webrick under rails?