Pregunta

Estoy trabajando en un sitio web de muy pequeña escala para mi escuela (menos de 100 usuarios por día) y me preguntaba si había alguna forma de almacenar archivos estáticos en el servidor Django en lugar de implementar un segundo servidor para administrar archivos estáticos.Las búsquedas en Google arrojan cosas como las siguientes: https://docs.djangoproject.com/en/dev/howto/static-files/, pero me pregunto si había una forma más sencilla de hacer esto, aunque no fuera muy eficiente, en el servidor Django.

¿Fue útil?

Solución

Sí, es ciertamente posible servir a los archivos estáticos utilizando el mismo servidor. El DOC dale un ejemplo de hacer esto usando apache / mod_wsgi > https://docs.djangoproject.com/en/1.4/howto/deploy/wsgi/modwsgi/#serving-files

Si, sin embargo, no tiene opción, sino también para servir archivos de medios en el mismo Apache VirtualHost como Django, puede configurar Apache para servir algunas URL como medios estáticos y otros utilizando la interfaz MOD_WSGI a Django.

Vale la pena señalar que cuando la referencia docs utiliza un servidor web separado, no significa necesariamente otra casilla (virtual o física), solo un servidor separado optimizado para servir recursos estáticos. De > https: / /docs.djangoproject.com/en/1.4/howto/static-files/#serving-static-files-from-a-dedicate-server

Las aplicaciones de Django más grandes utilizan un servidor web separado: es decir, uno que no está ejecutando Django, para servir archivos estáticos. Este servidor a menudo ejecuta un tipo diferente de servidor web, más rápido pero menos completo.

Una configuración común sería ejecutar NGINX para recursos estáticos frente a Apache / Mod_wsgi, Gunicorn o UWSGI como servidor WSGI que para un sitio pequeño se podría realizar en un solo servidor.

Otros consejos

Si por "servidor Django", te refieres al servidor de desarrollo ejecutado por python manage.py runserver, que desaconsejaría esto.

Realmente es una mala idea ejecutar el servidor de desarrollo Django en cualquier tipo de entorno de producción, además de servir archivos estáticos a través de él.No creo que la aplicación staticfiles te permita siquiera si DEBUG = FALSE.

Sin embargo, si desea servir contenido estático a través del mismo servidor web (lighttpd, apache, nginx) que sirve la aplicación Django, puede hacerlo fácilmente ejecutando python manage.py collectstatic en el directorio del proyecto para copiar todos los archivos estáticos en un directorio y configurar el servidor web para que sirva desde ese directorio como lo haría con cualquier otro sitio estático.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top