Tengo una aplicación básica con el panel de administración y la página de inicio de direct_to_template. Cuando escribo url que no concuerda con ninguna de las URL, recibo el error 404, pero cuando configuro DEBUG en falso, recibo 500.html en lugar de 404.html. ¿Alguna idea de por qué?500.html en lugar de 404.html
Respuesta
Django sirve 500 cuando una función de vista falla, lo que significa que debe haber algún código específico que no sea de depuración.
La única forma de saberlo es ver qué excepción está registrando django a través de los registros de su servidor o el correo electrónico que django envía a la lista ADMINS
.
También verificaría la ruta de TEMPLATE_DIRS en settings.py, ya que este era el problema en mi caso. Django provoca el error 404, pero como no pudo encontrar 404.html (en la ruta especificada en TEMPLATE_DIRS), generó 500 errores: no se encontró la plantilla (que se muestra en el navegador cuando la depuración es True o el registro del servidor, cuando debug = false).
Tal vez hay algo malo en su ejemplo 404.html.For, yo uso se extiende etiqueta como
{% extends base.html%}
en mi 404.html, a continuación, se muestra siempre 'sever error 500' en lugar de 'página no encontrado 404 '. pero cuando a corregir mi error como sigue
{% extends "base.html" %}
todo va bien.
He encontrado los mismos problemas. Y hago el sistema envía el error a mi gmail:
SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS): 127.0.0.1:8000
Por lo tanto, añadir este código en settings.py:
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
Y ahora, está bien. Creo que cuando hagas que DEPURACIÓN y TEMPLATE_DEBUG sean falsos, debes establecer ALLOWED_HOSTS.
Buena suerte.
- 1. La plantilla no existe: 500.html
- 2. MVC Html Extension return string en lugar de html markup?
- 3. Error de Symfony2 500 en lugar de 404 en la producción
- 4. Cuando trato de usar HTML con `JOptionPane`, se imprimen etiquetas HTML en lugar de formato HTML
- 5. PHP: muestra los primeros 500 caracteres de HTML
- 6. Configurar página 404 personalizada en IIS 7 para páginas HTML
- 7. cómo manejar errores como 404/500 en rails3
- 8. cómo obtener HTML completamente calculado (en lugar de HTML de origen)?
- 9. HTML en Symfony2 formar etiquetas en lugar de texto plano
- 10. JQuery: compila HTML en "memoria" en lugar de DOM
- 11. por qué utilizar 'html, body' para scrollTop en lugar de simplemente 'html'
- 12. <h: outputText> impresiones HTML tal cual en lugar de HTML real
- 13. Configure Rails para generar salida HTML en lugar de XHTML
- 14. ¿por qué debería usar content_tag en lugar de html "normal"?
- 15. ¿Renderizar JSON en lugar de HTML como valor predeterminado?
- 16. httpErrors muestra 500 error en lugar de YSOD en la máquina local
- 17. $ ('html'). Clic() ... en cualquier lugar excepto un elemento
- 18. Editor HTML con codificación html integrada en
- 19. Incluir archivo html en html usando html5
- 20. Voter causó el error 500 en lugar de 403
- 21. html button v.s. html submit?
- 22. Insertar html usando jquery .html()
- 23. Etiquetas html de Nest dentro de html
- 24. HTML y CSS en URL que causan errores 404 (agente de usuario = Trident/4.0)
- 25. HTML en Nokogiri
- 26. red de interfaz de usuario que muestra celular html Telerik Kendo en lugar del control html generado
- 27. Cómo representar HTML como HTML procesado en jQuery.tmpl()?
- 28. Poner HTML en JSON
- 29. ASP.NET personalizado 404 Devolución 200 OK En lugar de 404 No encontrado
- 30. HTML en variable PHP (fuera de código PHP HTML)
Tenías razón, tuve un error en 404.html. Cuando la depuración fue verdadera, no apareció. Muchas gracias :) – szaman
Para mí, fue un problema con la configuración ALLOWED_HOSTS. Ejecutar el sitio en localhost: 8000 con DEBUG = False requiere que agregue '*' a la lista ALLOWED_HOSTS, o obtendrá un error de 500. Asegúrese de recordar volver a sacarlo antes de implementarlo en un servidor de producción. –
@Sybren Añadiendo '*' mi problema ha quedado obsoleto. ¡Gracias! – laike9m