将Rails应用推送到Heroku

19

我正在尝试将一个Rails应用程序推送到Heroku。

当我到达最后一步时:

git push heroku master

它不起作用并显示了以下错误:

Counting objects: 85, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (74/74), done.
Writing objects: 100% (85/85), 24.38 KiB, done.
Total 85 (delta 23), reused 0 (delta 0)

-----> Heroku receiving push
 !     Heroku push rejected, no Rails or Rack app detected.

error: hooks/pre-receive exited with error code 1
To git@heroku.com:smooth-dusk-26.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:smooth-dusk-26.git'

我不知道我做错了什么 :(

8个回答

8
这是我从Heroku得到的答案,对我有用(在测试了不同的pg gem、适配器和其他10个帖子中的所有内容后):
1) 添加以下行: gem'pg' 到你的Gemfile文件中。
2) 运行命令bundle install,将宝石安装到你的包中。
3) 暂存Gemfile和Gemfile.lock更改: git add Gemfile Gemfile.lock
4) 提交更改: git commit -m "安装pg gem"
5) 重新部署到heroku: git push heroku master

如果这个方法解决了你的问题,那是因为Heroku在生产环境中使用Postgres作为它的数据库。假设你在本地使用的是sqlite,你需要添加pg gem,这样你的应用程序才能与Heroku的数据库通信。 - Eric Skiff

7

当您创建Rails应用程序时,您是否进入应用程序所在的目录?您必须从应用程序的目录中执行所有命令。

rails myapp
cd myapp

是的,我把它改到了错误的目录:/ 谢谢。但现在我的CSS文件无法工作 :/ - Lilz
我的公共目录也坏了 :( - Sam Soffes

3

我在阅读Michael Hartl的Rails教程第一章时遇到了相同的错误。通过打开Heroku账户并配置SSH密钥后,再次发出git commit命令最终解决了这些错误:git commit -a -m "Heroku重新提交"

然后git push heroku master成功了。


2

对我来说,存在index.php解决了这个问题。Heroku似乎会在pre-commit时检查是否存在index.php。


2

我刚试图将我的应用程序推送到Heroku时遇到了同样的问题,但以上答案都没有解决它。

我通过使用rvm gemset empty清空我的RVM Gemset,删除我的Gemfile.lock(最好只是重命名它),并重新安装我的gems来解决了这个问题。之后推送就正常工作了。


1

另外,如果你正在使用Rails 3.0,请确保使用cedar堆栈

heroku create --stack cedar

1

0

我完成了Rails教程,使用Heroku(MAC OS X)没有遇到任何问题,但你必须按照指示操作。

首先,请确保您已将更改添加/提交到Git。然后,如果您在-b(分支)中,则需要切换到主分支,然后合并该分支。如果您对资产进行了更改,则需要运行rake asset:precompile。

如果您遇到rack up问题,请确保您有此文件=>config.ru,其内容应如下所示。

# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run SampleApp::Application

我对Rails和Heroku相对较新,但正如我上面提到的,如果你按照教程的指示进行操作,Heroku非常容易上手,而且这些指示绝对有效。如果没有,请强烈建议从那里开始入手!

在此输入链接描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接