【问题标题】:Why is the rails_12factor gem necessary on Heroku?为什么 Heroku 需要 rails_12factor gem?
【发布时间】:2013-11-01 08:38:08
【问题描述】:

我注意到 Michael Hartl 的 Ruby on Rails Tutorial 的新版本说要在 Heroku 上提供以下静态资产服务

gem 'rails_12factor', group: :production

他的书以前的版本没有这个。有人能解释一下 Heroku 发生了什么需要这个 gem 的细节吗?

【问题讨论】:

  • 这与那里的日志记录方式有关devcenter.heroku.com/articles/rails4
  • Heroku 上的日志记录行为何时发生变化?
  • 我相信,他们一直都有这种日志记录,但之前他们自动将一些代码注入到应用程序中。如果你真的感兴趣,我建议你阅读 gem 的源代码。
  • 有没有 Heroku 说他们正在停止注入代码的帖子?

标签: heroku


【解决方案1】:

我能找到的最佳答案是查看rails_12factor README

还有关于 Heroku 为何决定包含 gem 的讨论:Why does this gem exist? 尤其是read the answer from schneems 大约在页面的一半。

【讨论】:

    【解决方案2】:

    此 gem 可以在生产环境中提供资产服务并将您的记录器设置为标准输出,这两者都是在十二因素提供程序上运行 Rails 4 应用程序所必需的。该 gem 还对 Rails 3 应用程序进行了适当的更改。

    【讨论】:

    • 如果您不使用资产管道怎么办?
    • 这是一个奇怪的问题。 Rails 为开发人员提供的不仅仅是资产管道。还有遗留代码需要考虑。就我而言,我正在/正在研究预资产管道代码。
    【解决方案3】:

    Getting Started with Rails 4.x on Heroku,我们可以读到:

    Heroku 集成以前依赖于使用 Rails 插件系统,该系统已从 Rails 4 中删除。要启用静态资产服务和 Heroku 登录等功能,请将 rails_12factor gem 添加到您的 Gemfile。

    【讨论】:

      【解决方案4】:

      较早的问题,但 FWIW Rails 5 应用程序不需要 rails_12factor gem。根据README

      我们与 Rails 核心团队合作,使 Rails 5 在十二因素平台上开箱即用。

      还有一个用于迁移到 Rails 5 的 sn-p。

      【讨论】:

        【解决方案5】:

        刚刚在 Heroku 上的 Rails 4 应用程序遇到问题,无法使用 heroku run logs 对其进行调试。如果没有 rails12factor gem,您将无法看到通常在开发中的控制台上看到的完整日志。我收到 500 错误,没有任何可用信息。

        它实际上并没有告诉我没有 rails12factor 的迁移是挂起的

        【讨论】:

          【解决方案6】:

          从 Rails 5 开始,您不再需要在 Gemfile 中包含此 gem。他们也将其从文档中删除:https://github.com/railsbridge/docs/issues/569

          【讨论】:

            猜你喜欢
            • 2013-08-19
            • 1970-01-01
            • 1970-01-01
            • 2012-06-30
            • 2013-06-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-06-09
            相关资源
            最近更新 更多