tutorial servir files estaticos cargar archivos agregar django

files - ¿Por qué usar el objeto de recopilación de Django en lugar de simplemente servir los archivos directamente desde su directorio estático?



static css django (2)

¿Por qué no solo sirve su directorio static ? Puede usar más de una aplicación, y algunas de sus aplicaciones pueden no estar bajo su control. Antes de que staticfiles aplicación staticfiles , tenía que copiar manualmente los archivos estáticos para todas las aplicaciones en un directorio común, cargarlos en su CDN o enlazarlos a la raíz del documento de su servidor web.

La aplicación staticfiles estableció una convención: coloque archivos estáticos para cada aplicación en un directorio static y deje que Django haga el trabajo por usted.

De los documentos de Django:

La implementación django.contrib.staticfiles proporciona un comando de administración conveniente para recopilar archivos estáticos en un solo directorio para que pueda servirlos fácilmente.

Establezca la configuración STATIC_ROOT en el directorio desde el que desea servir estos archivos, por ejemplo:

STATIC_ROOT = "/var/www/example.com/static/"

Ejecute el comando de gestión collectstatic:

$ python manage.py collectstatic

Esto copiará todos los archivos de sus carpetas estáticas en el directorio STATIC_ROOT.

Utilice un servidor web de su elección para servir los archivos. La implementación de archivos estáticos cubre algunas estrategias de implementación comunes para archivos estáticos.

¿Cuál es el propósito de copiar los archivos? ¿Por qué no servirlos desde el directorio en el que viven dentro de la aplicación?


STATIC_ROOT puede estar en una máquina diferente a la aplicación, por lo que copiar sus archivos estáticos a la raíz estática significa que puede servir sus archivos estáticos desde un servidor diferente (CDN FTW!) Que no podría hacer si esos archivos donde solo se ubican dentro de sus respectivos directorios de aplicaciones.