रेलवे उत्पादन मोड में चलते समय स्वचालित रूप से आपके लिए यह करता है। जब आप अपने एप्लिकेशन को लाइव सर्वर पर अपलोड करते हैं, तो रेल उन अपवादों को संभालने और सही शीर्षलेख स्थिति के साथ सही त्रुटि पृष्ठों को प्रस्तुत करने का ख्याल रखता है। यदि आप यह देखने की कोशिश कर रहे हैं कि वे पृष्ठ किस प्रकार दिख रहे हैं (परीक्षण या कुछ के लिए), बस उन्हें सीधे http://localhost:3000/404.html
जब भी आप लाइव सर्वर पर अपना रेल एप्लिकेशन सेट करते हैं (चलिए अपाचे को उदाहरण के रूप में उपयोग करते हैं) के माध्यम से सीधे पहुंचें, तो आप अपने आवेदन में साइट रूट को /public
फ़ोल्डर के रूप में दें। फिर, जब भी उस सर्वर पते पर कोई अनुरोध किया जाता है, तो अपाचे पहले उस सार्वजनिक फ़ोल्डर में दिखता है और एक स्थिर संपत्ति की सेवा करने का प्रयास करता है (यह [environment].rb
में कॉन्फ़िगर करने योग्य विकल्प है)। अगर यह अनुरोधित पृष्ठ नहीं मिल रहा है, तो अनुरोध रूबी स्टैक के माध्यम से भेजा जाता है।
उत्पादन मोड में, यदि रेलों को ऐसी त्रुटि का सामना करना पड़ता है जो संभाला नहीं जाता है (यानी शुरू होता है, बचाव), तो यह त्रुटि को पूरी तरह से ढेर तक फेंकता है, जो तब अपाचे (फिर से, मेरे उदाहरण में) को बताता है एक उचित त्रुटि प्रस्तुत करें। कोई जरूरत आपको लगता है कि मैन्युअल रूप से करना है कि -
ActiveRecord::RecordNotFound => 404 (page not found)
nil.method => 500 (server error) unless you turn off whiny nils
ActionController::RoutingError => 404 (page not found)
मैंने सोचा कि सार्वजनिक फ़ोल्डर में 404.htm और 500.htm डालना ठीक है। लेकिन मुझे यकीन नहीं। – PeterWong
मुझे डिफ़ॉल्ट रूप से वहां मिल गया। लेकिन अगर त्रुटियां होती हैं तो वे दिखाई नहीं देते हैं – daniel