【问题标题】:Assets pipeline on heroku : how to manage 2 environments?heroku 上的资产管道:如何管理 2 个环境?
【发布时间】:2011-12-18 13:09:21
【问题描述】:

我的应用在 heroku 上有 2 个环境:登台和生产,我使用的是 Rails 3.1 资产管道。

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

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

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails heroku asset-pipeline


    【解决方案1】:

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

    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.
    

    有关这方面的更多信息,请参见此处: http://devcenter.heroku.com/articles/labs-user-env-compile

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

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

    【讨论】:

    • 谢谢,我还找到了asset_sync gem并开始这样做。但我真的更喜欢你的第一个解决方案,如果它有效,我今天会告诉你!
    • 它就像一个魅力。只需要弄清楚我需要这个插件:github.com/heroku/heroku-labs
    猜你喜欢
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多