2011-12-18 51 views
3

我有2个环境为我的应用程序在heroku上:暂存和生产,我正在使用Rails 3.1资产管道。heroku上的资产管道:如何管理2个环境?

我已经设置自定义config.action_controller.asset_host属性,以使我的资产从CloudFront的获取上http://assets.myapp-staging.comhttp://assets.myapp.com

问题是,在Heroku上,资产总是与生产环境的预编译。这意味着即使在分期中,所有存在于我的css或js文件中的url也都是http://assets.myapp.com

有什么想法?

回答

6

最好的办法是做两件事情之一:

1)使用新的用户ENV-配置实验室附加这使得在塞编译阶段可用的环境变量。

简单地使用此:

$ heroku labs:enable user-env-compile -a myapp 
-----> Enabling user-env-compile for myapp... done 
WARNING: This feature is experimental and may change or be removed without notice. 

欲了解更多关于此在这里看到: http://devcenter.heroku.com/articles/labs-user-env-compile

2)不要使用这些资产。通过Asset Sync gem,您可以在应用程序在其环境中运行后运行资源编译。然后这将同步您的资产到S3。

有关它的更多信息,请访问: http://devcenter.heroku.com/articles/cdn-asset-host-rails31

+0

谢谢,我还发现了asset_sync宝石,开始走这条路。但我真的更喜欢你的第一个解决方案,如果它能够工作,我会让你知道! – Chris 2011-12-19 07:28:28

+0

它像一个魅力。只需要弄清楚我需要这个插件:https://github.com/heroku/heroku-labs – Chris 2011-12-19 07:48:49