مشكلة في التصحيح سيناترا التطبيق في الإنتاج
سؤال
أنا نشر سيناترا التطبيق باستخدام الركاب.نشر التطبيق هو العامل ، ولكن ليس تماما:بعض مسارات تعمل بشكل جيد, والبعض الآخر ببساطة تجعل صفحة فارغة.أنا لا يمكن أن يبدو للعثور على أي اختلافات كبيرة بين طرق العمل و الطرق التي لا وأنا لا يمكن أن يبدو لتعقب أي أخطاء..
معالجات
حددت 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/