我最近改用CloudFront作为CDN,使用简单的服务
config.action_controller.asset_host = "url of your cloudfront distribution"
在我的配置文件中。
一切运行良好,CF吸收了它还不够好的资产,为它们提供了很好的服务,比使用资产管道更快。
但是,由于多种原因,从CF而非我们自己的服务器提供服务时,我们的某些JS会中断。因此,我正在寻找一种仅将CF用于图像(或图像/ css)资产的方法,并且仍然直接从我们自己的服务器提供已编译的application.js文件。
有任何想法吗?
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文档。