我使用Cloudfront为我的Rails 3应用设置了CDN.我创建了4个CNAME重定向(cdn1.mywebsite.com,cdn2.mywebasite.com等),因此我可以并行化静态资源下载.
是否可以配置rails以使用多个资产主机?
我试过了
config.action_controller.asset_host = [" http://cdn1.mywebasite.com "," http://cdn2.mywebasite.com "," http://cdn3.mywebasite.com "," http:// cdn4. mywebasite.com "]
但它没有用.
见http://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html
浏览器通常最多同时打开两个与单个主机的连接,这意味着您的资产通常必须等待其他资产完成下载.您可以通过在asset_host中使用%d通配符来缓解此问题.例如,"assets%d.example.com".如果存在该通配符,则Rails在相应的四个主机"assets0.example.com",...,"assets3.example.com"之间分配资产请求.有了这个技巧,浏览器将打开八个同时连接而不是两个.
您需要稍微调整DNS以从0开始计数,然后执行:
config.action_controller.asset_host = 'http://cdn%d.mywebasite.com'