heroku上的资产管道:如何管理2个环境?

Chr*_*ris 3 ruby-on-rails heroku asset-pipeline

我在heroku上为我的应用程序设置了2个环境:分段和生产,我正在使用Rails 3.1资产管道.

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

问题是,在Heroku上,资产总是与生产环境一起预编译.这意味着即使在分段中,我的css或js文件中存在的所有URL都以http://assets.myapp.com为目标.

任何的想法?

Nei*_*ton 6

你最好的选择是做两件事之一:

1)使用新的user-env-config labs附加组件,它可以在slug编译阶段使您的环境变量可用.

要简单地使用它:

$ 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.
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此处:http: //devcenter.heroku.com/articles/labs-user-env-compile

要么

2)不要使用这些资产. 使用Asset Sync gem,一旦应用程序在其环境中旋转,您就可以运行资产的编译.然后,这会将您的资产同步到S3.

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