我使用的是rails 3。在生产中,rails可以很好地处理异常,并从公共目录加载静态404.html、500.html等文件。但是,它将这些文件加载到我的layouts/application.html.erb文件中。我正在寻找一种方法来指示rails在不使用我的应用程序布局的情况下加载这些文件——例如,只提供静态html文件,而不提供其他文件。实现这一目标的最佳方法是什么?
谢谢!
render :file => 'public/404.html', :status => :not_found, :layout => false
对于在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.erb
和error_500.erb
文件,以及一个粗略的图像和一个搜索栏。
点击此处了解更多信息。