簡體   English   中英

如何處理rails3中的404/500等錯誤

[英]how to handle errors like 404 / 500 in rails3

嘿,我希望你能幫助我。

我試圖找到一種方法將用戶定向到我公共文件夾中的默認錯誤頁面404.html和500.html。

因此,當存在路由或nomethod錯誤時,應該將其指向。 我已經在我的應用程序控制器中嘗試了一些東西,但它沒有用。

非常感謝!!

在生產模式下運行時,Rails會自動為您執行此操作。 當您將應用程序上傳到實時服務器時,Rails負責處理這些異常並使用正確的標頭狀態呈現正確的錯誤頁面。 如果您正在嘗試查看這些頁面的外觀(用於測試或其他內容),只需通過http://localhost:3000/404.html直接訪問它們

每當您在實時服務器上設置Rails應用程序時(讓我們以Apache為例),您將站點root作為應用程序中的/public文件夾。 然后,每當向該服務器地址發出請求時,Apache首先查找該公用文件夾並嘗試提供靜態資產(這是[environment].rb的可配置選項)。 如果找不到請求的頁面,則通過Ruby堆棧轉發請求。

在生產模式下,如果Rails遇到未處理的錯誤(即開始,救援),它會將錯誤全部拋到堆棧,然后告訴Apache(在我的示例中再次)呈現適當的錯誤。

以下是您在開發模式中看到的一些常見錯誤以及它們在生產模式下呈現的內容:

ActiveRecord::RecordNotFound => 404 (page not found)
nil.method => 500 (server error) unless you turn off whiny nils
ActionController::RoutingError => 404 (page not found)

如果在生產模式下運行,則會自動發生 - 無需您手動執行此操作。

看一下這篇文章 ,重定向導致路由錯誤的所有請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM