Heroku显示"空白应用"即使Procfile正在运行

时间:2017-03-17 01:14:58

标签: git heroku

我看到的所有单一路径都是Heroku欢迎页面,根据here发送的状态代码超过502.

同样根据此heroku HTTP routing guide,如果应用程序发送了无效响应,它也会发送502。我最近在同一台锅炉上部署了另一个应用程序,但这个应用程序并没有太大的不同。

我认为我能想到的两件事是这个应用程序使用open-uri接受用户输入,并且它在响应中发送(消毒)html。但是我并没有意识到在Heroku上对此进行了修改,我可以通过SSH和open("http://google.com").read来解决问题。

这是我的procfile:

web: env RACK_ENV=production bundle exec thin start -p $PORT

我的config.ru

require './server.rb'
run Server

在localhost上,我使用bundle exec thin start,一切正常。

我看到heroku ps的输出结果:

=== web (Free): env RACK_ENV=production bundle exec thin start -p $PORT (1)
web.1: up 2017/03/16 17:53:44 -0700 (~ 19m ago)

我也通过SSH来检查应用程序是否可以运行并且数据库已设置:

heroku run "irb -r ./server.rb"
Running irb -r ./server.rb on ⬢ music-sharing... up, run.2985 (Free)
irb(main):001:0> Audio.count
=> 0

heroku logs --tail中,我在提出请求后看到了这种情况:

  

2017-03-17T01:45:44.022727 + 00:00 heroku [router]:at = info code = H81 desc =" Blank app" method = GET path =" /favicon.ico" host = music-sharing.herokuapp.com request_id = 2e41fca8-0913-4a09-8635-2a26586c3234 fwd =" 73.170.238.232" dyno = connect = service = status = 502 bytes = protocol = https

我还确保应用程序位于根目录:

heroku run bash
Running bash on ⬢ music-sharing... up, run.5955 (Free)
~ $ ls
bin        db_config.rb  Procfile    server.rb
config.ru      Gemfile   Rakefile    tmp
crud_generator.rb  Gemfile.lock  README.md   vendor
db         models.rb     server_push.rb  ws.rb
~ $ 

1 个答案:

答案 0 :(得分:0)

这个答案取决于我在问题中没有包含的内容,所以它有点不公平,但这里的任何地方都是问题:

我正在使用此脚本进行部署:

git subtree push --prefix server heroku master

那是因为我的回购邮件有server/client/个文件夹(两个独立的应用)

由于某种原因,这没有用。

我进入了server/文件夹,在那里创建了一个新的(临时的,仅部署的)git仓库,提交了所有内容,将其指向heroku远程,然后强制推送。

如果我想出更多关于--prefix推送无法正常工作的信息(它正在我的其他应用上运行),我会在此处添加。

更新

通过修改脚本来使脚本工作:

git push heroku `git subtree split --prefix server master`:master --force