سؤال

أنا نشر سيناترا التطبيق باستخدام الركاب.نشر التطبيق هو العامل ، ولكن ليس تماما:بعض مسارات تعمل بشكل جيد, والبعض الآخر ببساطة تجعل صفحة فارغة.أنا لا يمكن أن يبدو للعثور على أي اختلافات كبيرة بين طرق العمل و الطرق التي لا وأنا لا يمكن أن يبدو لتعقب أي أخطاء..

معالجات

حددت not_found و معالجات خطأ على النحو التالي:

not_found do
  '404. Bummer!'
end

error do
  'Nasty error: ' + env['sinatra.error'].name
end

هذه تعمل بشكل جيد على الجهاز المحلي ، سواء في التنمية والإنتاج ، ولكن لم نرى هذه تأتي على الملقم.

أباتشي سجلات

عندما ذيل أباتشي الوصول.سجل و ضرب كسر مسارات أرى 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 الأخطاء ؟ شكرا على أي مساعدة!

هل كانت مفيدة؟

المحلول

وأود أن محاولة استخدام الرف::ShowExceptions الوسيطة في محاولة تتبع أصل المشكلة.في config.ru إضافة هذين الخطين قبل تشغيل المكالمات:

require 'rubygems'
require 'your-app'

use Rack::ShowExceptions

run YourApp

التي ينبغي أن قبض وعرض تعقب أي استثناءات تحدث في الرف أو في التطبيق الخاص بك.هذا يجب أن تعطيك المزيد من التفاصيل للعمل مع ، على الأقل سيكون هذا الأمل.

نصائح أخرى

ربما هناك شيء خاطئ مع السجل الخاص بك الإعداد ؟

توجيه STDERR عند تشغيل سيناترا الخادم حتى تتمكن من قراءتها.مثل:

ruby myapp.rb -p 1234 > log/app.log 2>&1

شكرا على الردود ولكن لم أكن في نهاية المطاف تحتاج إلى استخدامها.أنا أصلا نشر التطبيق في sub-URI التكوين.عندما نشر التطبيق الخاصة فرعي بدلا من المشاكل التي ذهبت بعيدا.

لذا..لست متأكدا حقا ما المشكلة, ولكن التخلص من هذا الخط هو اباتشي التكوين للموقع هو ما حل الأمور:

Redirect permanent / https://www.example.org/admin/member_photos/
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top