访问我的网站时,我不断从控制台收到此错误消息:
font from origin 'https://xxx.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://www.example.com' is therefore not allowed access.
我已经尝试了一切:
config.font_assets.origin = 'http://example.com'
Access-Control-Allow-Origin
Access-Control-Allow-Methods
Access-Control-Allow-Headers
Access-Control-Max-Age
但是什么都没有,零,nada。
我在 Heroku 上使用 Rails 4.1。
最佳答案
从 5.0 版开始,Rails 允许为 Assets 设置自定义 HTTP header ,您不必使用 rack-cors 或 font-assets gem。要为 Assets (包括字体)设置 Access-Control-Allow-Origin,只需将以下代码添加到 config/environments/production.rb:
config.public_file_server.headers = {
'Access-Control-Allow-Origin' => '*'
}
header 值也可以是特定域,如下所示:
config.public_file_server.headers = {
'Access-Control-Allow-Origin' => 'https://www.example.org'
}
这适用于我的应用程序,我不需要更改 Cloudfront 上的任何设置。
关于ruby-on-rails - Cloudfront CORS 问题在 Rails 应用程序上提供字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32592571/