Heroku Sinatra应用程序反复崩溃,无法使用控制台

时间:2011-02-10 09:47:12

标签: ruby heroku sinatra

我正在尝试将Sinatra应用程序部署到Heroku时遇到问题 - 这是我第一次使用Sinatra和Heroku。

我有一行.gems文件:“sinatra”以及包含以下行的config.ru文件:

require 'myapplication'
run Sinatra::Application

在推送到heroku并导航到网址后,我收到一个页面,上面写着“App Crashed”和以下文字:

  

此申请是暂时的   离线。如果您是管理员   这个程序,请检查你的heroku   回溯的日志。

“heroku日志”的输出是:

2011-02-10T01:33:24-08:00 app[web.1]:   from ./myapplication.rb:3
2011-02-10T01:33:24-08:00 app[web.1]:   from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require'
2011-02-10T01:33:24-08:00 app[web.1]:   from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire'
2011-02-10T01:33:24-08:00 app[web.1]:   from config.ru:2
<-- TEXT SNIPPED -->
2011-02-10T01:33:24-08:00 app[web.1]:   from /home/heroku_rack/heroku.ru:1:in `new'
2011-02-10T01:33:24-08:00 app[web.1]:   from /home/heroku_rack/heroku.ru:1
2011-02-10T01:33:25-08:00 heroku[web.1]: State changed from starting to crashed
2011-02-10T01:33:32-08:00 heroku[nginx]: GET / HTTP/1.1 | 75.56.61.69 | 3310 | http | 500

myapplication.rb的第3行是“require'models'”,其中“models.rb”与“myapplication.rb”存在于同一目录中。

每当我运行“heroku console”命令时,我都会收到以下内容:

Your application is too busy to open a console session.
Console sessions require an open dyno to use for execution.

我尝试了各种方法试图让它消失但尚未成功。

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,所以这不是一个完整的答案,但也许它会有所帮助。如果您只是使用heroku logs,那么您只能获得20行(或者可能是50行)的输出。您的错误跟踪看起来不像从实际错误开始,因为它从“开始”开始,在我有限的经验中,它表明它不是源。如果您还没有,请尝试heroku logs -n 200或更多以获得更长的跟踪,并搜索“Errno”或“ERROR”等。它对控制台问题没有帮助,但至少它可能会告诉你为什么你的应用程序无法正常工作。

答案 1 :(得分:0)

如果您正在运行其中一个使用Ruby 1.9.x(而不是旧的1.8.x)版本的Ruby的Heroku堆栈,请注意新的“require_relative”指令1.9,您必须使用它引用相对于当前文件的路径中的文件。

这让我感到高兴,因为我在本地开发了1.8.x

如果您希望它适用于1.8.x和1.9.x,您可以执行以下操作:

require "#{File.dirname(__FILE__)}/another_referenced_rb_file_in_same_directory"