2

私はうまく終了している巨大なRailsアプリを持っていますが、アプリの厄介な動作のためにGoogleに問題があります. 電話すると

http://railsapp.com/index.html

アプリが存在しない場合、正しい 404 エラーが返されます。でも電話したら

http://railsapp.com/index.htm

それはそれほど素晴らしいことではない406エラーを返します。この問題は、拡張子が .htm の存在しないファイルが要求されるたびに発生します。Rails アプリが 406 ではなく 404 を返すようにするにはどうすればよいですか?

4

2 に答える 2

1

406.htmファイルがパブリックフォルダで利用できないため、エラーが発生します-存在しないファイル。レイアウトに従ってパブリックフォルダに406.htmlファイルを追加してから試してください。

于 2012-10-15T07:11:10.267 に答える
1

これを試して

 respond_to do |format|    
   format.html {}
   format.js {}        
  end

"#{RAILS_ROOT}/public/.." では 406.htm ファイルがエラーになるため、404.html ファイルはパブリック フォルダーで使用できるため、呼び出されます。

あなたの{RAILS_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
于 2012-10-15T06:47:00.867 に答える