如何在不将资产推送到 Heroku 的情况下通过 CDN 托管 Rails 资产

How to Host Rails Assets Through a CDN without pushing assets to Heroku

所以我目前有太多资产无法推送到我的免费 heroku 帐户。我目前将它们托管在一个 hostgator 服务器上,这是有问题的,因为通过对每个图像发出远程请求,并且服务器本身不具有 Amazon CloudFront 的性质,它可以显式地为 CDN 加速和缓存事物,它明显地加载了所有图片都在DOM里慢似的。我的问题是,如何在不将资产推送到我的 heroku 帐户的情况下通过 CloudFront 提供资产?

最好的解决方案是创建一个自定义部署脚本,其中包含一个专门用于将您的资产上传到 S3 的步骤,然后通过 CloudFront 从 S3 提供资产。(查看 https://github.com/rumblelabs/asset_sync 了解想法)

具体来说:

  1. 将您的资产添加到您的 .gitignore
  2. 在您的 production.rb 文件中正确设置您的资产主机
  3. 部署的第 1 步是将更改的资产复制到您的 S3 存储桶中,文件夹结构与 rails 预期的
  4. 相同
  5. 部署的第 2 步是您使用标准命令 git push heroku master 推送到 repo -- 如果您的资产被正确忽略,它不会推送您的资产。