0

我正在使用 exception_handler gem 来制作自定义 404 页面。当我转到我网站上的 404 页面时,它显示未找到,但如何自定义此页面?我尝试更改路线,制作 errors_controller 和 not_found 视图。

应用程序.rb

config.exceptions_app = self.routes

路线.rb

  get "/404", :to => "errors#not_found"
  get "/422", :to => "errors#unacceptable"
  get "/500", :to => "errors#internal_error"

errors_controller.rb

class ErrorsController < ApplicationController

  def not_found
    render :status => 404   end

  def unacceptable
    render :status => 422   end

  def internal_error
    render :status => 500   end

end

app/views/errors/not_found.html.erb

<label> TEST 404 Label </label>
4

2 回答 2

1

很有可能您已经正确配置了这些页面,并且代码可以正常工作,但不适用于您正在工作的环境。在目录中config/environments,您应该有三个文件:development, test, production. 当您在开发中工作时,它不会呈现您创建的那些页面,因为它默认为 Rails 错误。您应该检查config/environments/development.rb并查看您config.consider_all_requests_local设置的内容。您可以将其更改为false,重置路由器并能够看到错误页面,然后true在继续进一步开发时将其换回。请注意,您使用的实现看起来像是 exception_handler gem 的替代方案,并且会处理错误而不是那个 gem。

您可以在 Rails 指南中找到更多信息:http: //guides.rubyonrails.org/configuring.html#rails-general-configuration

于 2017-09-30T17:34:36.853 回答
1

我忘了运行rails g exception_handler:views这个生成了我的项目文件中的所有视图,现在我可以根据自己的喜好自定义它们。

于 2017-09-30T17:48:06.143 回答