我正在尝试将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:in
require'
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.
我尝试了各种方法试图让它消失但尚未成功。
感谢您提供的任何帮助!
答案 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"