De Base Rails Page D'Erreur 404
J'ai été à la recherche d'une réponse simple à cette pour un ridiculement long, et il semble que ce doit être tout à fait évident et simple, parce que personne n'a de simple, idiot proof tutoriel.
De toute façon, tout ce que je veux faire est d'avoir un seul 404.html statique de la page qui se charge chaque fois qu'une erreur est levée. Idéalement, cela devrait être fait uniquement dans la production et la mise en scène.
Je me sens comme ce devrait être la chose la plus facile à faire... mais je ne peux pas le comprendre.
Toute aide est très appréciée.
- Bonne question @chishomer, j'ai donné la meilleure réponse. Vérifier que. stackoverflow.com/questions/1447627/basic-rails-404-error-page/...
Vous devez vous connecter pour publier un commentaire.
dans votre
ApplicationController
maintenant mettre en place
error_pages/404.html
et là vous allez...ou peut-être que je suis trop prudente avec l'Exception et vous devez les sauver de la RuntimeError à la place.
Rails.application.config.consider_all_requests_local
au lieu deActionController::Base.consider_all_requests_local
.Je crois que si vous exécutez en mode de production, puis 404.html dans le répertoire public allait être servi quand il n'y a pas de routes pour une URL.
Si vous exécutez en mode de production, 404.html,500.html,422.html les fichiers dans le répertoire public obtient servi à chaque fois qu'il y a erreur s'est produite, les pages ci-dessus seront affichés.
Dans les rails 3.1
Nous pouvons l'utiliser comme ci-dessous:
Rails 3.1 va automatiquement générer une réponse avec le bon code d'état HTTP (dans la plupart des cas, il s'agit de 200 OK). Vous pouvez utiliser l' :statut possibilité de changer cela:
Rails understands both numeric and symbolic status codes.
Pour plus d'informations, voir cette page
Cheers!
Vous n'obtiendrez pas une 404 chaque fois qu'une erreur est levée, car pas toutes les erreurs suite à une erreur 404. C'est pourquoi vous avez 404, 422, et de 500 pages dans votre répertoire public. Je suppose que les rails a jugé que ces erreurs les plus courantes. Comme le dit Ben, 404 viendra quand il ne peut pas trouver quelque chose, 500 lors de l'application renvoie une erreur. Entre les deux, vous pouvez couvrir beaucoup de vos bases.
Une autre façon de le faire est de configurer votre
config/application.rb
avec les éléments suivants:De sorte que chaque fois que
MyCustomException
est soulevée, les Rails le traite comme un régulier:not_found
, rendupublic/404.html
.Pour tester cette localement, assurez-vous de changer
config/environments/development.rb
à:Lire plus sur
config.action_dispatch.rescue_responses
.