Ruby on rails 为什么rails应用程序在某些情况下返回406而不是404?

Ruby on rails 为什么rails应用程序在某些情况下返回406而不是404?,ruby-on-rails,ruby-on-rails-3,error-handling,Ruby On Rails,Ruby On Rails 3,Error Handling,我有一个巨大的Rails应用程序运行得很好,但我有一个谷歌的问题,因为一些恶劣的行为的应用程序。当我打电话时 该应用程序返回一个正确的404错误。但是当我打电话的时候 它返回一个406错误,这不是很好。每次请求扩展名为.htm的不存在文件时,都会出现此问题。如何使rails应用程序返回404而不是406?试试这个 respond_to do |format| format.html {} format.js {} end 因为在“#{RAILS\u

我有一个巨大的Rails应用程序运行得很好,但我有一个谷歌的问题,因为一些恶劣的行为的应用程序。当我打电话时

该应用程序返回一个正确的404错误。但是当我打电话的时候

它返回一个406错误,这不是很好。每次请求扩展名为.htm的不存在文件时,都会出现此问题。如何使rails应用程序返回404而不是406?

试试这个

 respond_to do |format|    
   format.html {}
   format.js {}        
  end
因为在“#{RAILS\u ROOT}/public/”中,406.htm文件不是它们的文件,所以它会给出错误,而404.html文件在public文件夹中可用,所以它可以调用

在{RAILS\u ROOT}/public中,这些是文件,它们是

1. 404.html
2. 422.html
3. 500.html
若您使用这些文件,那个么它将调用其他文件,否则它将给出错误,比如文件不存在

也可以在ApplicationController中执行此操作,并定义如下方法:

def render_404
  render :file => "#{RAILS_ROOT}/public/404.html",  :status => 404
end

您的公用文件夹中没有406.htm文件,因此您会得到错误-不存在的文件。根据布局在公用文件夹中添加406.html文件,然后重试