【问题标题】:Rails asset precompile aborted on Heroku Push - uninitialized constant Rake::DSLRails 资产预编译在 Heroku Push 上中止 - 未初始化的常量 Rake::DSL
【发布时间】:2014-02-20 17:36:31
【问题描述】:

我在几年前看到这个错误,当时 Rake 会破坏 Rails,但这看起来很奇怪。

我昨天将我的 Rails 3.2.16 应用程序部署到 Heroku,但现在预编译资产失败,没有任何资产更改。完整错误如下:

Running: rake assets:precompile
rake aborted!
uninitialized constant Rake::DSL
/tmp/build_96e5edbe-65ff-42fc-a7e8-e59432cc8de0/Rakefile:7:in `<top (required)>'

很好奇最近是否有重大变化,或者我错过了什么会突然改变事情。

Rake 是 10.1.0 版本。本地 Ruby 版本 1.9.3 和 Heroku 上的 1.9.2。

看到这个:https://groups.google.com/forum/#!topic/heroku/6yjIiP69NqI(大约 2 年前),它建议使用而不只是 include Rake::DSL

class Rails::Application 
  include Rake::DSL 
end

不过,不知道为什么会在一夜之间改变。

【问题讨论】:

  • 刚才我也发生了同样的事情。没有真正的代码更改可能导致它。
  • 顺便说一句,下面 4 个“答案”中有 3 个不是答案。如果您想发表评论,只需在此处添加评论。欢迎来到 StackOverflow。

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


【解决方案1】:

我刚才也遇到了同样的问题。我在 Gemfile 中将它的 ruby​​ 版本更新为 2.0.0(它是 1.9.2),然后成功部署。

要更新版本,只需在 Gemfile 的源代码行下添加:

 ruby "2.0.0"

我希望这也能解决您的问题。

【讨论】:

  • 很简单。默认情况下,我在 heroku 上运行 1.9.2,在 Gemfile 中将其更新为 1.9.3,并且“正常工作”。
  • 从 1.9.2 更改为 1.9.3 也对我有用。如果我们所有人突然遇到这个问题,heroku 平台上一定发生了一些变化......
  • 虽然,我刚刚升级到 2.0.0,并且无法推送到 heroku - 看起来他们的 ruby​​ 构建包中有一些错误......
【解决方案2】:

和你们其他人一样的问题,只是突然去更新应用程序并推送到 heroku 导致这个错误。如果我在玩的过程中发现任何东西会在这里更新。

【讨论】:

    【解决方案3】:

    Huzzah,在重新安装 rake 并更新 Rakefile 以支持 DSL 后,我成功运行了“git push heroku master”。

    重新安装 Rake:

    gem uninstall rake
    

    *我选择卸载所有版本

    gem install rake
    

    更新捆绑器:

    bundle update
    

    更新 Rakefile,添加要求:

    require 'rake/dsl_definition'
    

    并更新 Rakefile,添加模块:

    module ::ApplicationName  
      class Application
        include Rake::DSL
      end
    end
    

    *确保将 ApplicationName 更新为您的应用名称。

    致力于 git 并运行更新:

    git push heroku master
    

    希望能帮助你们恢复运行,不确定 Heroku 发生了什么,但如果这可以解决您的问题 @muzcat007,也许您可​​以更新您的 Heroku 票证,让他们调查这个奇怪的新 DSL 要求。

    干杯

    【讨论】:

    • 没试过 - 通过在 Gemfile 中指定 ruby​​ 版本让它工作。 Heroku 之前是 1.9.2(默认),更新到 1.9.3(已经在本地运行),一切正常。
    猜你喜欢
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2013-04-15
    • 2011-10-07
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多