サイトをブラウズ中に生成されたエラーコードに基づいて動的エラーページを生成するようにRails環境を設定しました。Railsエラーページを使用して301リダイレクト - クロムがうまく再生されない
現在、404、422、500のエラーコードを1ページで処理しています。問題は、500エラーが生成されると、Railsは自動的に301リダイレクトを適用するということです。これは、エラーページが永続的なものではなく、Chromeがそれらをキャッシュしているため問題になります。これにより、エラーが修正された後でも、ユーザーは500ページを取得します。
私は可能なすべてのGoogle検索を行っていますが、誰もこの特定の問題を抱えていないようです(注:私は実際にそれを信じていません)。
# routing error pages
%w(404 422 500).each do |code|
get code, to: "errors#show", code: code
end
をそして、ここに私のコントローラのコードです:ここで
は私のルートが設定されている方法です(注:簡潔にするため省略個):
if status_code == '404'
Rails.logger.warn "Invalid endpoint request: #{request.original_fullpath}"
elsif status_code == '500'
Rails.logger.warn "The 500 page was rendered. Please check the logs prior to this message for stack trace and reporting."
...
end
respond_to do |format|
format.html { render status_code.to_s, status: status_code }
format.json { render json: status_code.to_s, status: status_code }
end
私はこれをテストするための例外を生成ページを持っていますcalle oh_noes
、リクエストリダイレクト:
Request URL:http://192.168.42.42:3000/en/oh_noes
Request Method:GET
Status Code:301 Moved Permanently
Remote Address:192.168.42.42:3000
ありがとうあなたが提供できるあらゆる助けのために事前に。
これについては既に良いブログ記事があります。例えば、https://mattbrictson.com/dynamic-rails-error-pages – slowjack2k
私は既にそれを読んでいます。私が言ったように、私はその話題について多くの検索をしました。それらのすべてに、私がすでに行っているセットアップ方法が記載されています。問題は301であり、キャッシュされないように302に変更する方法です。 – Jocko
エラーを再現できません。私はブログの投稿に記載されている手順に従いました。エラーが発生した場合、エラー表示は即座に表示されます。 – slowjack2k