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使用它来确定要部署的应用程序类型。”

就我而言,我的GemfilesGemfile.lock被忽略了。 当我检查github时,由于.gitignore忽略了我的gemfiles,因此我的应用程序没有推送Gemfile。

从gitignore删除我的gemfiles后,我推到了heroku,一切顺利