Heroku 推送错误:“无法检测到 rake 任务”(Rails 6.1)

Posted

技术标签:

【中文标题】Heroku 推送错误:“无法检测到 rake 任务”(Rails 6.1)【英文标题】:Heroku push error: "Could not detect rake tasks" ( Rails 6.1 ) 【发布时间】:2021-04-14 18:36:39 【问题描述】:

我有一个“Rails 6.1.1”应用程序。每当我尝试部署它时,我都会收到此错误 -

remote: -----> Detecting rake tasks
remote: 
remote:  !
remote:  !     Could not detect rake tasks
remote:  !     ensure you can run `$ bundle exec rake -P` against your app
remote:  !     and using the production group of your Gemfile.
remote:  !     /tmp/build_05dae8c4/config/boot.rb:4:in `require': cannot load such file -- bootsnap/setup (LoadError)
remote:  !     from /tmp/build_05dae8c4/config/boot.rb:4:in `<top (required)>'
remote:  !     from /tmp/build_05dae8c4/bin/rake:3:in `require_relative'
remote:  !     from /tmp/build_05dae8c4/bin/rake:3:in `<main>'
remote:

我正在尝试使用 -

git push heroku master 

这是我的 Gemfile -

source 'https://rubygems.org'
git_source(:github)  |repo| "https://github.com/#repo.git" 

ruby '2.7.2'

gem 'rails', '~> 6.1.1'
gem 'puma', '~> 5.0'
gem 'sass-rails', '>= 6'
gem 'webpacker', '~> 5.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
gem 'bcrypt', '~> 3.1.7'

gem 'bootsnap', '>= 1.4.4', require: false

group :development, :test do
  gem 'sqlite3', '~> 1.4'
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 4.1.0'
  gem 'rack-mini-profiler', '~> 2.0'
  gem 'listen', '~> 3.3'
  gem 'spring'
end

group :test do
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver'
  gem 'webdrivers'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

我刚刚开始构建应用程序,并尝试使用基本控制器来部署它。我检查了所有内容,它仍然给了我这个信息。它在 localhost 中运行良好。

【问题讨论】:

【参考方案1】:
rake assets:precompile --dry-run

然后如果你看到错误解决它 然后运行

rake assets:precompile

【讨论】:

* 没用。错误仍然出现 * 是的,有一个错误,它还建议我运行bundle update。在运行了bundle install 之后,我再次运行rake assets:precompile --dry-run。然后它显示了这个 - `**调用资产:预编译(first_time)**调用资产:环境(first_time)**执行(试运行)资产:环境**调用纱线:安装(first_time)**执行(试运行) ) yarn:install ** Execute (dry run) assets:precompile ` 虽然我在运行你建议的 2 个命令后将它推送到 heroku,但它仍然显示相同的错误。 你用 --dry-run 试过了吗 是的,我做到了,它建议我运行bundle update【参考方案2】:

我在bundler version 2.2.4 上遇到了同样的错误。在我阅读下面链接的帖子并降级为bundler version 2.1.4 后,它为我解决了错误。

https://***.com/a/65333470/12483010

【讨论】:

【参考方案3】:

在阅读this 和this 后,我修复了rake assets:precompile

【讨论】:

【参考方案4】:

我尝试了rake assets:precompile 并按照 heroku 的建议指定了锁定的平台。

这是我第一次部署到 heroku,在我第一次部署之前我没有将 RAILS_MASTER_KEY 设置为配置变量。一旦我设置好了,部署就成功了。

【讨论】:

以上是关于Heroku 推送错误:“无法检测到 rake 任务”(Rails 6.1)的主要内容,如果未能解决你的问题,请参考以下文章

错误:未能在 heroku 中推送一些参考

Heroku推送失败并出现关于sqlite3的错误[重复]

Heroku 会抛出类似“推送被拒绝,未经授权的访问”这样的错误。 [关闭]

Heroku 推送错误:“无法检测到 rake 任务”(Rails 6.1)

找不到所需的文件 index.html - Heroku 推送错误

Heroku 推送失败