Ruby on rails 如何解决通过CDN部署字体时的CORS问题

Ruby on rails 如何解决通过CDN部署字体时的CORS问题,ruby-on-rails,cors,asset-pipeline,cdn,Ruby On Rails,Cors,Asset Pipeline,Cdn,我在Rails应用程序中成功地使用fontawesome已有一段时间了 我最近试图将我的资产分配转移到CDN,但在使用Chrome和Firefox时遇到了CORS问题 我现在在production.rb中添加了以下内容,它似乎已经修复了Chrome中的问题 config.action_dispatch.default_headers.merge!({ 'Access-Control-Allow-Origin' => 'path.to.my.app', 'Access-Control

我在Rails应用程序中成功地使用fontawesome已有一段时间了

我最近试图将我的资产分配转移到CDN,但在使用Chrome和Firefox时遇到了CORS问题

我现在在production.rb中添加了以下内容,它似乎已经修复了Chrome中的问题

config.action_dispatch.default_headers.merge!({
  'Access-Control-Allow-Origin' => 'path.to.my.app',
  'Access-Control-Request-Method' => '*'
}) 
我有两个问题:

  • 如何确保此标题仅应用于字体文件(例如,如果我使用的是.htaccess文件,我将执行类似于
    的操作,如何在Rails中实现这一点,建议这样做吗?)

  • 上述内容似乎没有解决Firefox中的CORS问题(至少我仍然看到“字体缺失”的空白方块代替了fontawesome图标)。Firefox是否有特殊要求,如果有,是什么要求


  • 我在网上看到了很多关于CORS、CDN、Rails和字体的页面,但没有一个页面与我的案例相关(尽管这可能是因为我不完全理解这个问题)。感谢您的任何想法或推荐

    我认为这是对CORS问题的一个很好的解释,可以充分理解这个概念-

    访问控制允许源是CORS(跨源资源共享) 标题

    当站点A尝试从站点B获取内容时,站点B可以发送 Access Control Allow Origin response标头告诉浏览器 某些来源可以访问此页面的内容。(起源) 是一个域,加上一个方案和端口号。)默认情况下,站点B 任何其他来源都无法访问页面;使用 访问控制允许原点标题为交叉原点打开一扇门 通过特定请求来源进行访问

    当涉及到专门使用rails解决这个问题时-我读到这个库做得很好-

    你可能已经看到了,但我想最后一个答案可能会有所帮助-


    这篇文章介绍了几种跟踪rails的方法-

    谢谢@paul,我确实尝试了rack cors,但由于似乎无法解决问题,所以将其替换掉了。在我的问题中添加配置代码已经修复了Chrome和Safari中的问题-字体现在看起来和预期的一样。但是Firefox仍然没有显示字体。我不确定为什么Firefox的行为应该与其他浏览器不同…?嗨@AndyHarvey你有nginx conf文件吗?有没有办法试试这个。。。