如何渲染rails静态404,500错误页面没有网站布局?

时间:2012-03-21 15:48:33

标签: ruby-on-rails ruby-on-rails-3

我正在使用rails 3.在生产rails中很好地处理异常并从我的公共目录加载我的静态404.html,500.html等文件。但是,它会将这些文件加载​​到我的layouts / application.html.erb文件中。我正在寻找一种方法来指示rails加载这些文件而不使用我的应用程序布局 - 例如只提供静态html文件,没有别的。完成此任务的最佳方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:55)

render :file => 'public/404.html', :status => :not_found, :layout => false

答案 1 :(得分:1)

对于在Rails框架内工作的高级方法。更新您的routes文件:

get "/404", to: "errors#error_404"
get "/500", to: "errors#error_500"

添加ErrorsController

layout false

def error_404
  render status: 404
end

def error_500
  render status: 500
end

然后在app/views/errors/内添加error_404.erberror_500.erb个文件以及snazy image和搜索栏。

More info here