仅使用Rails从CloudFront提供图像资源

时间:2014-06-13 19:10:18

标签: ruby-on-rails asset-pipeline cdn amazon-cloudfront

我最近转而使用CloudFront作为CDN来使用简单的

来提供我的资产

config.action_controller.asset_host = "url of your cloudfront distribution"在我的配置文件中。

一切运作良好,CF吸收的资产不是很好,服务得很好,比使用资产管道更快。

然而,由于各种原因,我们的一些JS在从CF而不是我们自己的服务器提供服务时中断。所以我正在寻找一种方法来将CF用于图像(或图像/ css)资源,并且仍然直接从我们自己的服务器提供已编译的application.js文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

Rails允许您将config.action_controller.asset_host设置为proc。这样,您可以在选择资产主机时拥有尽可能多的控制权。例如:

config.action_controller.asset_host =  Proc.new { |source|
  if source.ends_with?('.jpg')
    "http://cdn.example.com"
  else
    nil
  end
}

有关详细信息,请参阅api docs