【问题标题】:What exactly was initialize_on_precompile used for?initialize_on_precompile 到底是做什么用的?
【发布时间】:2017-01-09 01:17:07
【问题描述】:

我无法理解 initialize_on_precompile 的用途。 究竟是什么意思,它是假的(尤其是与 Heroku 相关的)?它是真的意味着什么?

如果这个问题过于宽泛/模糊,我们深表歉意,但我似乎无法在任何地方找到答案。

【问题讨论】:

  • 在谷歌上搜索“initialize_on_precompile heroku”时的第一个链接告诉你它到底做了什么devcenter.heroku.com/articles/rails-asset-pipeline
  • 好吧,我只是想要一个全面的答案来了解它的含义。我怎么知道它不会触发 other 事情发生?再次为新问题道歉。
  • @infused 这个人显然是个新手。他甚至在原帖中道歉。嘘。这么苛刻也没用。我相信其他人会欣赏超过 2 句话对配置的更好解释。每个人都从某个地方开始。 6 年前,这个社区曾经更受欢迎。

标签: ruby-on-rails ruby-on-rails-3 heroku ruby-on-rails-5


【解决方案1】:

此选项在Rails 3.x 之前可用,因为当您运行rake assets:precompile 时,它会初始化应用程序并尝试连接到数据库。因此,将此选项设置为 false 会阻止它。因此,如果您在连接数据库时遇到任何问题 rake assets:precompile 将无法正常工作并且失败,此选项可确保它能够正常工作。

来自 Rails Git 存储库:

initialize_on_precompile 更改告诉预编译任务在不调用 Rails 的情况下运行。这是因为预编译任务默认在生产模式下运行,并且会尝试连接到您指定的生产数据库。请注意,在使用此选项进行本地编译时,您不能在依赖 Rails 资源(例如数据库)的管道文件中包含代码。

Rails 4.x 中,此选项已被删除,不再需要。 Rails 4 现在总是在预编译资产之前加载初始化程序和数据库配置

提交来源: https://github.com/rails/rails/commit/2d5a6de

【讨论】:

  • 感谢您的快速回答!这对于在 Rails 3 上需要 initialize_on_precompile 为 false 的 gem 意味着什么?例如,最新版本的设计现在与 Rails 5 兼容。这是否意味着它已更改为考虑初始化程序将始终在预编译资产之前运行?
  • 是的,与 rails 4 及更高版本兼容的 gem 确实考虑到了这一点。
  • 非常感谢您的耐心等待。这真的帮助我理解了可能发生的事情。
猜你喜欢
  • 2013-02-05
  • 1970-01-01
  • 2015-08-06
  • 2013-09-02
  • 2014-01-02
  • 2013-10-10
  • 2017-05-08
  • 2022-01-20
  • 2012-10-17
相关资源
最近更新 更多