如何在不将资产推送到 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 了解想法)
具体来说:
- 将您的资产添加到您的 .gitignore
- 在您的 production.rb 文件中正确设置您的资产主机
- 部署的第 1 步是将更改的资产复制到您的 S3 存储桶中,文件夹结构与 rails 预期的
相同
- 部署的第 2 步是您使用标准命令
git push heroku master
推送到 repo -- 如果您的资产被正确忽略,它不会推送您的资产。
所以我目前有太多资产无法推送到我的免费 heroku 帐户。我目前将它们托管在一个 hostgator 服务器上,这是有问题的,因为通过对每个图像发出远程请求,并且服务器本身不具有 Amazon CloudFront 的性质,它可以显式地为 CDN 加速和缓存事物,它明显地加载了所有图片都在DOM里慢似的。我的问题是,如何在不将资产推送到我的 heroku 帐户的情况下通过 CloudFront 提供资产?
最好的解决方案是创建一个自定义部署脚本,其中包含一个专门用于将您的资产上传到 S3 的步骤,然后通过 CloudFront 从 S3 提供资产。(查看 https://github.com/rumblelabs/asset_sync 了解想法)
具体来说:
- 将您的资产添加到您的 .gitignore
- 在您的 production.rb 文件中正确设置您的资产主机
- 部署的第 1 步是将更改的资产复制到您的 S3 存储桶中,文件夹结构与 rails 预期的 相同
- 部署的第 2 步是您使用标准命令
git push heroku master
推送到 repo -- 如果您的资产被正确忽略,它不会推送您的资产。