Rails 3.2:Heroku推送拒绝,没有检测到Cedar支持的应用程序
Rails新手在这里。 我正在尝试将我的Rails 3.1 / Ruby 1.9.3-p0应用程序部署到Heroku,并按照Heroku的所有步骤进行操作。 但我一直遇到:
Heroku推送拒绝,没有检测到Cedar支持的应用程序
我已经尝试了这个问题的所有建议,但到目前为止都没有成功。
我遇到了类似的拒绝。 对我有用的是重新初始化.git文件。
尝试在命令行中:
rm -rf .git git init git add . git commit -am "Reinitialize" heroku create --stack cedar git push heroku master
我刚用我的一个应用程序解决了这个问题。 如果您查看文档 ,Cedar Stack将在根目录中搜索Gemfile。 在我的例子中,根目录只有包含我的app的文件夹,里面有Gemfile。
所以,你需要做的是在这个文件夹中初始化一个新的git repo并添加远程:
$ cd my_app_folder $ git init $ git add . $ git commit -m "Heroku commit" $ git remote add heroku git@heroku.com:my-app-in-heroku.git $ git push heroku master
而且你已经完成了!
每当我遇到这个错误时,我会检查以下两件事:
- 确保Gemfile存在于Rails应用程序的根目录中。 Heroku使用它来确定要部署的应用程序类型。
- 确保Rails应用程序根目录本身置于版本控制之下(例如:Git)而不是其父目录。
如果您不小心将rails应用程序的父目录放入版本控制中。 删除此父目录中的.git
目录并初始化新的存储库,但这次是在Rails应用程序目录下。
尝试
$ git init $ git add . $ git commit -m "Change to something"
然后跑
git push heroku master
我之前几次遇到过这个问题,那是因为我试图将远程分支推送到heroku。
要解决问题,而不是使用:
git push heroku master
我用了:
git push heroku my-branch:master
这将git存储库中的远程分支my-branch
推送到heroku的master
分支。
我也有同样的问题。 我的文件结构不是heroku所期望的(.git必须与Gemfile处于同一级别)。 我删除了Rails_Code文件夹,它工作正常。
Project\ .git Rails_Code\ Gemfile etc...
同样的情况,就像@petwho上面说的那样
“确保Gemfile存在于Rails应用程序的根目录中.Heroku使用它来确定要部署的应用程序类型。”
就我而言,我的Gemfiles
和Gemfile.lock
被忽略了。 当我检查github时,由于.gitignore
忽略了我的gemfiles,因此我的应用程序没有推送Gemfile。
从gitignore删除我的gemfiles后,我推到了heroku,一切顺利