git push heroku master 因“HTTP 400 curl 22 The requested URL returned error”而失败
Posted
技术标签:
【中文标题】git push heroku master 因“HTTP 400 curl 22 The requested URL returned error”而失败【英文标题】:git push heroku master fails by "HTTP 400 curl 22 The requested URL returned error" 【发布时间】:2019-02-08 01:34:59 【问题描述】:我正在尝试推送仅显示“你好,世界”的 Rails 应用程序。 然后我遇到了如下错误。 我想知道如何解决这个问题。
$git push heroku master 枚举对象:88 个,完成。 计数对象:100% (88/88),完成。 Delta 压缩最多使用 4 个线程。 压缩对象:100% (73/73),完成。 写入对象:100% (88/88),22.29 KiB | 1.71 MiB/s,完成。 总计 88 个(增量 2),重复使用 0 个(增量 0) 错误:RPC 失败; HTTP 400 curl 22 请求的 URL 返回错误:400 Bad Request 致命:远端意外挂断 一切都是最新的
我的程序如下。
1.创建如下所示的rails应用程序。rails new sample
2.修复路由和application_controller显示你好,世界。
3.更改 Gemfile。
3-1.在开发测试组声明sqlite3
gem 'sqlite3'
3-2.在生产组中声明pg
gem 'pg', '0.20.0'
4.执行bundle install --without production
5.执行git add .
6.执行git commit -m "initial commit for heroku"
7.通过rails s
确认它是否有效并访问localhost:3000
8.执行heroku login
并输入id和密码。
9.执行heroku keys:add
,SSH密钥由该操作创建。
10.执行heroku create
11.执行git push heroku master
然后我得到错误
每个程序的版本如下。 * Rails 5.1.6 * heroku/7.14.1 win32-x64 node-v10.9.0
这个错误是什么?如何避免这个错误? 如果您需要更多信息,请告诉我。
我在下面添加了我的 gem 文件。
source 'https://rubygems.org'
# git_source(:github) do |repo_name|
# repo_name = "#repo_name/#repo_name" unless repo_name.include?("/")
# "https://github.com/#repo_name.git"
# end
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.6'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for javascript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
gem 'rails_12factor'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '~> 2.13'
gem 'selenium-webdriver'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
gem 'web-console', '>= 3.3.0'
end
group :production do
gem 'pg', '0.20.0'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
【问题讨论】:
这看起来是同一个问题。这个问题的答案有什么运气吗? ***.com/questions/19449800/… 感谢您的评论。我根据链接试过了,但是不行……我用的是git版本2.18.0.windows,你觉得我应该用低版本的git吗? 【参考方案1】:导航到存储库后,运行以下命令将缓冲区增加到 500MB:
git config http.postBuffer 524288000
【讨论】:
感谢您的回复。我做到了,但我得到了同样的错误......你有什么想法吗? 添加这个 gem gem "rails_12factor" 然后 $bundle install 然后 $git add 。 $git commit -m "add gem" $git push heroku master 让我知道这是否有效! 我试过了,但结果是一样的。我的 gem 文件有问题吗? heroku 键:添加。这是我知道的唯一可能给你权限被拒绝错误的原因。 $git remote set-url heroku git@heroku.com:testapp.git 然后 $heroku keys:add 似乎可以解决您的问题 感谢您的帮助。我重新创建了应用程序和 ssh 密钥,但我不能……这可能是我的环境有问题。【参考方案2】:如果它对任何人有帮助,我在推送到 Azure 时遇到了同样的错误。原来我已经填满了我的应用服务存储配额。 我删除了一堆大文件,问题就解决了。
【讨论】:
【参考方案3】:就我而言,我必须将远程 URL 更改为使用 git:
协议而不是 https:
,而且我还必须创建一个公钥。
获取当前网址:
git remote get-url heroku
假设你的 URL 类似于https://git.heroku.com/your-repo-here.git
,你应该使用这个命令来使用git:
协议:
git remote set-url heroku git@heroku.com:your-repo-here.git
创建公钥:
heroku keys:add
参考链接:
https://***.com/a/6059231/679240 https://***.com/a/19466075/679240【讨论】:
以上是关于git push heroku master 因“HTTP 400 curl 22 The requested URL returned error”而失败的主要内容,如果未能解决你的问题,请参考以下文章
git push 与 git push heroku master
HEROKU - 无法运行 git push heroku master [重复]
git push heroku master:Heroku push 被拒绝,没有检测到 Cedar 支持的应用程序