希望在heroku上使用我的rails应用程序使用amazon,因为一切都可以(资产,数据库,上传).
资产最让我烦恼……
Heroku帮助文件说创建一个存储桶以将文件转储到和引用为:http://s3.amazonaws.com/bucketname/filename.这给了我两个开发选项(我能想到):
>我可以让.gitignore不要查看本地开发的资产,并确保在擦除所有引用或编写帮助后将这些文件上传到我的AWS桶中?
>始终将所有东西存放在我的桶中,并在本地开发期间被迫拨打我的桶.
我想知道我是否可以配置这个以便在本地我可以将app资产存储在app / assets文件夹中,并在推送/部署到heroku时自动将资产推送到亚马逊?
这是我的第一个带有亚马逊的heroku rails应用程序,所以请随意侮辱我应该如何配置这些东西以及正确的工作流程.
谢谢.
最佳答案 尝试使用
asset_sync
gem.这可以让您完全按照自己的意愿行事:在本地使用资产管道,然后在推送到Heroku后从S3(可选择通过Cloudfront)提供资产.
请注意,Heroku的编译步骤通常不提供对配置变量的访问,并且您需要将asset_sync的这些配置变量推送到S3.这个解决方案(实际上是整个asset_sync HOWTO)发布在Using a CDN Asset Host with Rails 3.1指南中.
这种方法的缺点是它违反了12 factor app的一些原则 – 特别是与“构建,发布,运行”有关.这会产生一些负面影响:例如,heroku发布:回滚将回滚您的应用程序,但不会重新编译并重新上传您的资产.