Rails 3.2:Heroku推送拒绝,没有检测到Cedar支持的应用程序

ral*_*hos 25 ruby-on-rails heroku cedar

Rails新手在这里.我正在尝试将我的Rails 3.1/Ruby 1.9.3-p0应用程序部署到Heroku,并按照Heroku的所有步骤进行操作.但我一直遇到:

Heroku推送拒绝,没有检测到Cedar支持的应用程序

我已经尝试了这个问题的所有建议,但到目前为止都没有成功.

Ale*_*ber 74

我遇到了类似的拒绝.对我有用的是重新初始化.git文件.

尝试在命令行中:

rm -rf .git
git init
git add .
git commit -am "Reinitialize"
heroku create --stack cedar
git push heroku master
Run Code Online (Sandbox Code Playgroud)

  • 在您采取这一重大步骤之前,您可能会检查您是否在主分支上.Heroku忽略了非主分支.如果这是您的问题,您可以切换到master并从那里进行部署,或者将非master分支推送到heroku的master分支:`git push heroku branch_name:master`. (7认同)
  • 我不会直接砸碎你的整个存储库的历史,分支,遥控器等.只需在你做这个之前呼吸一下. (3认同)

小智 8

我刚用我的一个应用程序解决了这个问题.如果您查看文档,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
Run Code Online (Sandbox Code Playgroud)

而且你已经完成了!


pet*_*who 7

每当我遇到这个错误时,我会检查以下两件事:

  • 确保Gemfile存在于Rails应用程序的根目录中.Heroku使用它来确定要部署的应用程序类型.
  • 确保Rails应用程序根目录本身置于版本控制之下(例如:Git)而不是其父目录.

如果您不小心将rails应用程序的父目录放入版本控制中.删除.git此父目录中的目录并初始化新存储库,但这次是在Rails应用程序目录下.


col*_*ain 5

尝试

$ git init
$ git add .
$ git commit -m "Change to something"
Run Code Online (Sandbox Code Playgroud)

然后跑

git push heroku master
Run Code Online (Sandbox Code Playgroud)