Heroku + CDN Cloudfront +字体 - Firefox错误

hyp*_*pee 5 firefox heroku cors amazon-cloudfront

最近,我们将资产转移到了CDN Cloudfront上.我们注意到Firefox上的表面被破坏了.经过几分钟的搜索,这是一个CORS的故事.我们允许使用Cloudfront字段.

application_controller:

after_filter :set_access_control_headers

def set_access_control_headers
  headers['Access-Control-Allow-Origin'] = CDN_CLOUDFRONT
end
Run Code Online (Sandbox Code Playgroud)

production.rb:

CDN_CLOUDFRONT = "http://xxx.cloudfront.net"
Run Code Online (Sandbox Code Playgroud)

这直到昨天都很顺利.经过几次搜索和反思,我还没有找到解决方案.

任何的想法?

rhe*_*nik 7

我没有使用Heroku设置,但是AFAIK(并且如developer.mozilla.org所示),标题Access-Control-Allow-Origin应该反映从CDN 消耗静态资产的域的值.

例如:对于在http://mydomain.net上托管并从http://wefe342r34r23.cloudfront.net消费资产的网站

headers['Access-Control-Allow-Origin'] = 'http://mydomain.net'

允许mydomain.net通过http://wefe342r34r23.cloudfront.net访问资产.换句话说,替换CDN_CLOUDFRONT您的网站的域名应该可以解决问题.

希望这可以帮助.

PS:直到昨天我还不确定你的设置是如何工作的.:)

PPS:向您的CDN 添加备用域名(CNAME)将帮助您快速丢弃通过http://xxx.cloudfront.net公开的现有分发并开始使用新的分发http:// yyy. cloudfront.net.如果在这种情况下使用备用域名(例如http://cdn.mydomain.net),则无需更改应用程序代码库中的任何内容.