8
votes

500.html au lieu de 404.html

J'ai une application de base avec le panneau d'administration et la page d'accueil Direct_To_Template. Lorsque je tapez URL qui ne correspond à aucun des URL, je reçois une erreur 404, mais lorsque je définit le débogage sur FALSE, je reçois 500.html au lieu de 404.html. Une idée pourquoi?


0 commentaires

5 Réponses :


8
votes

Django sert un 500 lorsqu'une fonction de vue échoue, ce qui signifie qu'il doit y avoir une rupture de code spécifique sans débogage.

Le seul moyen de dire est de voir quelle exception Django enregistre soit via vos journaux de serveur ou par courrier électronique que Django envoie à la liste admins


3 commentaires

Vous aviez raison, j'avais une erreur dans 404.html. Quand debug était vrai, il n'est pas apparu. Merci beaucoup :)


Pour moi, c'était un problème avec le paramètre autorisé_hosts. Exécution du site sur localhost: 8000 avec debug = False nécessite que vous ajoutez '*' à la liste autorisée_hosts, ou vous obtiendrez une erreur de 500. Assurez-vous de vous rappeler de la reprendre avant de vous déployer sur un serveur de production.


@Sybren Ajout * a réalisé mon problème. Merci!



4
votes

Je voudrais également vérifier le chemin template_dirs dans Paramètres.py comme c'était le problème dans mon cas. Django augmente 404 erreur, mais comme il n'a pas été capable de trouver 404.html (dans le chemin spécifié dans template_dirs), de sorte qu'il a augmenté de 500 erreurs - modèle non trouvé (ce qui est soit montré dans le navigateur lorsque DEBUG est un vice-président ou un journal du serveur. débogage = faux).


0 commentaires

1
votes

Peut-être qu'il y a quelque chose qui ne va pas dans votre exemple 404.html.Pour, j'utilise EXTEND TAG COMME

{% extends "base.html" %}


0 commentaires

2
votes

J'ai rencontré les mêmes problèmes. Et je fais que le système envoie l'erreur à mon gmail: xxx pré>

donc, j'ajouterai ce code dans des paramètres.pycy:

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']


0 commentaires

2
votes

Si quelqu'un affronte une telle erreur, vous pouvez également envisager d'écrire votre avis de cette façon: xxx

sans l'argument d'exception alors il mène à Erreur 500 et dans la préférence 500.html est exécuté.


0 commentaires