您能帮我吗?我想将404错误页面添加到我的网站。 我尝试了很多方法,但是对我没有用。 这是其中之一。
ApplicationController
unless ActionController::Base.consider_all_requests_local
rescue_from Exception, :with => :render_404
end
private
def render_404
render :template => 'error_pages/404', :layout => false, :status => :not_found
end
然后设置error_pages / 404.html
任何人都可以解决此问题吗?
答案 0 :(得分:4)
从控制器中解救404(通常源自ActiveRecord::RecordNotFound
)并不总是有帮助,因为还会存在路由错误(ActionController::RoutingError
)
要向用户Rails展示异常,请调用config.exceptions_app
,其默认值为ActionDispatch::PublicExceptions.new(Rails.public_path)
,仅呈现public/404.html
等。
在大多数情况下,将错误页面放在此处就足够了,但是如果您绝对必须动态呈现某些内容,则可以覆盖例外应用程序。
一种常见的技巧是通过config.exceptions_app = self.routes
将异常路由回您的主要路由,并添加常规路由来处理它们:
get '/404', to: 'errors#not_found'
get '/422', to: 'errors#unacceptable'
get '/500', to: 'errors#server_error'
但是请注意,如果已经有异常-您可能会得到一个异常循环,因此最好有单独的错误处理应用程序/引擎
答案 1 :(得分:0)
如果只需要自定义 static 错误页面,则可以在public / 404.html,public / 422.html和public / 500.html中更改HTML。