Los archivos estáticos en Django son aquellos como imágenes, archivos CSS y JavaScript que no cambian durante la ejecución del servidor. Django proporciona un sistema eficiente para gestionar y servir estos archivos, facilitando su uso en aplicaciones web.
En una aplicación Django, los archivos estáticos son recursos que no dependen de los datos del usuario y que normalmente se sirven directamente a través del navegador. Django permite organizar y gestionar estos archivos mediante el uso de una carpeta especial llamada static
, y proporciona una manera de acceder y referenciar estos archivos dentro de las plantillas y vistas.
Django se encarga de organizar estos archivos y de servirlos correctamente durante el desarrollo, mientras que en producción se recomienda configurar un servidor web como Nginx o Apache para servir los archivos estáticos de manera eficiente.
Para gestionar correctamente los archivos estáticos en Django, es necesario realizar algunos ajustes en el archivo settings.py
de tu proyecto.
settings.py
# Indica la URL a través de la cual se accederán los archivos estáticos
STATIC_URL = '/static/'
# Define la ruta donde Django encontrará tus archivos estáticos
STATICFILES_DIRS = [BASE_DIR / "static"]
# Define la ruta donde se recopilarán todos los archivos estáticos cuando uses 'collectstatic'
STATIC_ROOT = BASE_DIR / "staticfiles"
Para incluir archivos estáticos en una plantilla, primero debes asegurarte de que la etiqueta {% load static %}
esté presente al inicio de la plantilla. Luego, puedes referenciar los archivos de la siguiente manera:
{% load static %}
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="{% static 'css/estilos.css' %}">
</head>
<body>
<img src="{% static 'images/logo.png' %}" alt="Logo">
</body>
</html>
En un entorno de producción, los archivos estáticos se deben recopilar en una carpeta central usando el comando collectstatic
. Este comando reúne todos los archivos estáticos de las aplicaciones instaladas y los coloca en la carpeta definida en STATIC_ROOT
.
python manage.py collectstatic
Después de ejecutar este comando, Django moverá todos los archivos estáticos a la carpeta STATIC_ROOT
, lista para ser servida por el servidor web en producción.
static/css/
o static/js/
y referenciarlos en las plantillas.
static/images/
y acceder a ellas con la etiqueta {% static %}
.
Para más detalles sobre la configuración y el uso de archivos estáticos en Django, puedes consultar la documentación oficial de Django sobre archivos estáticos.
Jorge García
Fullstack developer