【问题标题】:rails heroku asset precompile fail due to rake version由于 rake 版本,rails heroku 资产预编译失败
【发布时间】:2013-10-05 16:06:00
【问题描述】:

当我尝试推送到 heroku 时,我得到了这个消息:

rake aborted! undefined method empty? for nil:NilClass (in /tmp/build_3d16ad44-0015-4ecb-a7cf-a41959f03f82/app/assets/stylesheets/application.css.scss)

追查发现,原来是因为

rake aborted! You have already activated rake 10.0.3, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this.

这可能是一个非常愚蠢的问题,但我不确定我应该如何使用 bundle exec 为 heroku 执行此操作?请帮忙。谢谢。

【问题讨论】:

  • 你是如何预编译资产的?我认为 Heroku 正在预编译它们(当您推送到 Heroku 时)?什么版本的 Rails?
  • heroku 在推送时对它们进行预编译。我正在使用 rails 3.2

标签: ruby-on-rails heroku rake


【解决方案1】:

以防其他人遇到类似问题。问题是heroku在他们所有的新应用程序中都使用了ruby 2.0,所以为了做到这一点,你必须把你正在使用的任何ruby版本放在gemfile上,然后通过在命令行中输入git reset --soft HEAD~git reset HEAD public/assets来重置git . rm -r public/assets 如果您在公共/资产中有未跟踪的文件。然后保存更改并推送到您的新站点。

因此,如果您的应用使用比 2.0 更旧的 ruby​​ 版本,您将不得不进行类似的更改,直到错误(sprocket?)得到修复。

【讨论】:

  • noob 我也有同样的问题..我不知道如何追踪我的问题,请提供程序来追踪我的问题....
【解决方案2】:

在终端的项目目录内:

gem list rake

您将看到多个版本。如果是这样,则通过命令删除您不需要的版本(即您的情况下为 10.0.3):

gem uninstall rake

它会要求您从列表中选择特定版本,选择一个并按 Enter。

或者,您也可以更新到特定的 rake 版本

bundle update rake -v '0.9.2.2'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-12
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2023-04-04
    • 2020-04-17
    相关资源
    最近更新 更多