在Rails上使用多个子域config.action_controller.asset_host

 醉情YJY_414 发布于 2023-01-19 13:02

我使用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 "]

但它没有用.

1 个回答
  • 见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'
    

    2023-01-19 13:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有