railsがんばる子

Ruby on Railsがんばる子です。胡蝶蘭のECサイトを運営しています。

/xxx.txtなどのアクセスを受けた時、MissingTemplateエラーが出力される

何が起きたのか

/xxx.txtなどのアクセスを受けた時、MissingTemplateエラーが出力される

概要

404.txtをrenderしようとするが、404.html.erbなどHTMLファイルしか用意していないことが原因である。 なるほどね。 まあ、当たり前ですよね

解決策

  • Railsで対応しているフォーマットの404と500を全部作る
  • MissingTemplateが発生したら404.htmlに無理やり変更する(もしくは500)

Railsで運営されてるっぽいサイトはどうやって対応しているのか?

github様

いつもお世話になっています。 https://github.com/rails/rails/issues/25593.txt

ホワイトアウト!

これ、何も対処してないね。

https://github.com/rails/rails.txtなどは404ページが表示される。 slugがrails.txtのリソースを探しにいってNOT FOUNDということだと思う。 まあ、何も対応してないね。

Oh My Glasses様

Spreeを利用されているメガネのECサイトさん。 同じフレームワークを使っているので、こういうとき、よく参考にしています。 https://www.ohmyglasses.jp/brands.txt

しぼん。

結論

  • ま、きにしなくていいんじゃねーか?
  • 他にもいくつかみたけど、適切にtxtを返すようなサイトは見つからなかった。
  • .txtなどをpermalinkに含めて検索してNOT FOUNDを返すケースと、サーバーエラーになるケースの2つに分かれる模様。
  • 「1行routes.rbに書けば解決!」みたいなのが無ければやらなくて良さそう。めんどくさいし。