在尝试“git push heroku master”时,我不断收到错误:
Counting objects: 266, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (239/239), done.
Writing objects: 100% (266/266), 222.68 KiB, done.
Total 266 (delta 55), reused 0 (delta 0)
-----> Heroku receiving push
-----> Rails app detected
-----> Detected Rails is not set to serve static_assets
Installing rails3_serve_static_assets... done
-----> Gemfile detected, running Bundler version 1.0.3
Unresolved dependencies detected; Installing...
Using --without development:test
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control
You have deleted from the Gemfile:
* version: 1.0.6
FAILED: http://docs.heroku.com/bundler
! Heroku push rejected, failed to install gems via Bundler
error: hooks/pre-receive exited with error code 1
To git@heroku.com:freezing-frost-65.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:freezing-frost-65.git'
我尝试将Gemfile和Gemfile.lock添加到git但无济于事。我尝试删除.bundle目录和Gemfile.lock,但同样的错误。
答案 0 :(得分:15)
bundler 1.0.6版存在问题 您需要在开发计算机上运行“gem update bundler”以将bundler更新到1.0.7。然后,您需要在应用程序中运行bundle update以生成新的Gemfile.lock文件。您将看到Gemfile.lock已更新。提交这个新的Gemfile.lock并再次推送到heroku。
答案 1 :(得分:8)
我通过打开Gemfile.lock并删除以下两行来修复我的行:
PLATFORMS
x86-mingw32
所以现在我只需要创建一个捆绑包然后从锁定文件中删除它的脚本。
答案 2 :(得分:6)
Gemfile
和Gemfile.lock
文件都需要包含在git存储库中。
确保您没有在.gitignore
文件中忽略它们。
另外,请确保在本地计算机上使用Bundler> = 1.0.0来生成Gemfile.lock
。我使用的是过时的版本,比如Bundler 0.9x,它会失败。
最后但并非最不重要的,如果你有Gemfile.lock,请更新它。
$ cd /path/to/project
$ bundle update
答案 3 :(得分:5)
答案 4 :(得分:3)
我删除了我的Gemfile.lock文件下PLATFORMS下的“mingw”行,添加并提交给git,将其推送到git,然后将所有内容推送到heroku,显然它现在可以正常工作。
答案 5 :(得分:0)
在您的应用程序目录中,在bin
子目录中修改文件
bin/bundle
bin/rails
bin/rake
而不是
'#!/usr/bin/env ruby.exe
必须是
'#!/usr/bin/env ruby
(感谢上一篇文章)
确保gemfile.lock中没有对windows的引用 - 它们可以被删除。
然后
git push heroku master
如果仍有问题,请使用heroku logs
(将文本复制到文本编辑器可以更轻松地剪切和粘贴解决方案)。