【问题标题】:heroku push rejected : require_tree argument must be a directoryheroku push 被拒绝:require_tree 参数必须是一个目录
【发布时间】:2017-06-06 14:10:13
【问题描述】:

我正在尝试将我的应用推送到 Heroku。

一切正常,直到最后一个命令git push heroku master

工作结束是:

remote:        Bundle complete! 23 Gemfile dependencies, 64 gems now installed.
remote:        Gems in the groups development and test were not installed.
remote:        Bundled gems are installed into ./vendor/bundle.
remote:        Post-install message from httparty:
remote:        When you HTTParty, you must party hard!
remote:        Bundle completed (43.35s)
remote:        Cleaning up the bundler cache.
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        I, [2017-01-21T18:38:23.836925 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/knacss-2fd9029d30582c6fdf840f44c8b929a84918ca5d13a17d95ff31500a7391ff3d.css
remote:        I, [2017-01-21T18:38:23.837699 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/knacss-2fd9029d30582c6fdf840f44c8b929a84918ca5d13a17d95ff31500a7391ff3d.css.gz
remote:        I, [2017-01-21T18:38:29.692584 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/froala_editor.min-bf21cc5709ba6b62dbaf6f8b39b9d555ca633fd92e99d0fdddbdfc893bbd5ec0.js
remote:        I, [2017-01-21T18:38:29.693514 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/froala_editor.min-bf21cc5709ba6b62dbaf6f8b39b9d555ca633fd92e99d0fdddbdfc893bbd5ec0.js.gz
remote:        I, [2017-01-21T18:38:30.081111 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/froala_editor.min-4f428c6899d37f6415063f547a9818c7665532ecdffa7a2ccae309183e516efe.css
remote:        I, [2017-01-21T18:38:30.081876 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/froala_editor.min-4f428c6899d37f6415063f547a9818c7665532ecdffa7a2ccae309183e516efe.css.gz
remote:        I, [2017-01-21T18:38:30.163071 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/froala_style.min-f464bc7ed28df7543569f0518d2522676230104c53afd6303a5519a60c001b36.css
remote:        I, [2017-01-21T18:38:30.163506 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/froala_style.min-f464bc7ed28df7543569f0518d2522676230104c53afd6303a5519a60c001b36.css.gz
remote:        I, [2017-01-21T18:38:30.167687 #1189]  INFO -- : Writing /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/public/assets/plus-a4fd4a7a5f7c6877b6f60c21b804384d0613d5a7d14a66eb1a828672d211e600.png
remote:        rake aborted!
remote:        Sprockets::ArgumentError: require_tree argument must be a directory
remote:        /tmp/build_da9cf4ff20889ce0ceb823aa131b35be/app/assets/javascripts/cable.js:6

以消息Precompiling assets failed结束

我猜它正在寻找我的资产(css 或 javascript)中缺少的目录。但我不知道是哪个目录。

任何帮助将不胜感激。

编辑

我的文件 cable.js 看起来像这样:

//= require action_cable
//= require_self
//= require_tree ./channels
(function() {
  this.App || (this.App = {});
  App.cable = ActionCable.createConsumer();
}).call(this);

无论是我添加了//= require_tree 还是我将所有内容都注释掉了,都没有改变任何东西。

【问题讨论】:

标签: ruby-on-rails git heroku


【解决方案1】:

cable.js 文件的第 6 行是什么样的?

你在用Action Cable吗?

在您的app/assests/javascripts/cable.js 文件中,//= require_tree 语句后面必须跟一个目录,如下所示:

//= require_tree ./channels

然后你的频道文件就在app/assets/javascripts/channels的目录中

如果您没有使用Action Cable,则只需将所有内容注释掉,您的推送应该会成功。

编辑:

您应该删除您的cable.js 文件。并注释掉app/channels/application_cable/channel.rbapp/channels/application_cable/connection.rb中的所有代码

这让我可以将 Rails 5 项目推送到 Heroku,而不会出现资产错误。

【讨论】:

  • 我不知道 Action Cable 是什么。我已经更新了要回答的问题。还是不行。
  • 我删除了 cable.js 并完全注释掉了 2 个文件,但我仍然得到同样的错误(即 cable.js 的 ligne 6,不再存在)。我想我会完全重新部署我的应用程序。
  • 即使文件不存在,您仍然会收到相同的错误?那没有意义。请发布新的错误。另外,请确保在推送之前将代码重新提交到 Github。
【解决方案2】:

我认为您不应该删除或注释掉某些内容。但是 Heroku 需要一个空的 ./channels 目录,而你现在没有。只需添加一个空文件,例如.keep 到你的./channels 目录,提交它并推送到 Heroku。

见: require_tree argument must be a directory in a Rails 5 upgraded app

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 2011-12-31
    • 2016-06-02
    • 2012-10-07
    • 1970-01-01
    • 2017-01-10
    • 2012-12-29
    • 2017-12-29
    相关资源
    最近更新 更多