¿Por qué la configuración DEBUG=False hace que mi acceso a archivos estáticos de Django falle?

Resuelto JWL asked hace 13 años • 21 respuestas

Estoy creando una aplicación usando Django como mi caballo de batalla. Todo ha ido bien hasta ahora: configuraciones de base de datos especificadas, directorios estáticos configurados, URL, vistas, etc. Pero los problemas comenzaron a surgir en el momento en que quería renderizar mis propias páginas 404.html y 500.html hermosas y personalizadas.

Leí los documentos sobre manejo de errores personalizado y establecí las configuraciones necesarias en UrlsConf, creé las vistas correspondientes y agregué 404.html y 500.html al directorio de plantillas de mi aplicación (especificado también en settings.py).

Pero los documentos dicen you can actually view custom error views until Debug is Off, así que lo apagué para probar mis cosas, ¡y ahí es cuando las cosas se vuelven locas!

No solo no puedo ver el 404.html personalizado (en realidad, se carga, sino que debido a que cada una de mis páginas de error contiene un mensaje de error gráfico, como una imagen bonita), se carga la fuente de la página de error, ¡pero no se carga nada más! ¡Ni siquiera CSS o Javascript vinculados!

Generalmente, una vez que lo configuro DEBUG = False, se cargarán todas las vistas, pero el contenido vinculado (CSS, Javascript, imágenes, etc.) no se cargará. ¿Lo que está sucediendo? ¿Falta algo relacionado con los archivos estáticos y la DEBUGconfiguración?

JWL avatar Apr 30 '11 02:04 JWL
Aceptado

Si aún necesita un servidor estático localmente (por ejemplo, para realizar pruebas sin depurar), puede ejecutar devserver en modo inseguro:

manage.py runserver --insecure
Dmitry Shevchenko avatar Oct 03 '2011 19:10 Dmitry Shevchenko

Con la depuración desactivada, Django ya no manejará archivos estáticos por usted; su servidor web de producción (Apache o algo así) debería encargarse de eso.

Marek Sapota avatar Apr 29 '2011 19:04 Marek Sapota