如何在 rails 应用的 ruby 中添加 404 错误页面?

How to add 404 error page in ruby on rails app?

你能帮我解决这个问题吗?我想在我的网站上添加 404 错误页面。 我尝试了很多方法,但对我没有任何用处。 这是其中之一。

应用程序控制器

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

谁能解决这个问题?

从您的控制器中拯救 404(通常源自 ActiveRecord::RecordNotFound)并不总是有帮助,因为还存在路由错误 (ActionController::RoutingError)

要向用户 rails 调用 config.exceptions_app,它默认为 ActionDispatch::PublicExceptions.new(Rails.public_path) 并只呈现 public/404.html

在大多数情况下,将错误页面放在那里就足够了,但如果您绝对必须呈现动态内容 - 您可以覆盖异常应用程序。

一个常见的 hack 是通过 config.exceptions_app = self.routes 将异常路由回您的主要路由并添加常规路由来处理它们:

get '/404', to: 'errors#not_found'
get '/422', to: 'errors#unacceptable'
get '/500', to: 'errors#server_error'

但请注意,如果已经存在异常 - 您可能会遇到异常循环,因此最好有单独的错误处理 app/engine

如果您只是想要自定义 static 错误页面,您可以更改 public/404.html、public/422.html 和 public/500.html.