繁体   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