Я развертываю приложение Sinatra, используя пассажир. Развернутое приложение работает, но не полностью: некоторые пути работают нормально, другие просто отображают пустую страницу. Кажется, я не могу найти каких-либо серьезных различий между маршрутами, которые работают, и маршрутами, которые не работают, и я не могу отследить какие-либо ошибки ..
Обработчики
Я определил обработчики not_found и error следующим образом:
not_found do
'404. Bummer!'
end
error do
'Nasty error: ' + env['sinatra.error'].name
end
Они отлично работают на моей локальной машине, как в разработке, так и на производстве, но я никогда не видел, чтобы они появлялись на сервере.
Логи Apache
Когда я подключаю Apache access.log и нажимаю на один из сломанных путей, я вижу 500:
helpers [27/Oct/2009:15:54:59 -0400] "GET /admin/member_photos/photos HTTP/1.1" 500 20 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"
rack_hoptoad
Я также установил и настроил rack_hoptoad промежуточного программного обеспечения в моем config.ru, но никаких исключений не происходит из-за этого.
# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'
регистрация
Я настроил ведение журнала так ...
set :raise_errors => true
set :logging, true
log = File.new("log/sinatra.log", "a+")
STDOUT.reopen(log)
STDERR.reopen(log)
require 'logger'
configure do
LOGGER = Logger.new("log/sinatra.log")
end
helpers do
def logger
LOGGER
end
end
Эта настройка позволяет мне вызывать logger.info в рамках моих маршрутов, который работает локально и на сервере для рабочих маршрутов, но неработающие пути не достаточно далеко, чтобы вызвать logger.info.
Что делать?
Есть идеи относительно того, как я могу увидеть, что вызывает 500 ошибок? Спасибо за любую помощь!