Volver a la página principal
miércoles 16 octubre 2024
14

Cómo usar archivos estáticos en Django

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.

¿Qué son los archivos estáticos en Django?

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.

Cómo configurar archivos estáticos en Django

Para gestionar correctamente los archivos estáticos en Django, es necesario realizar algunos ajustes en el archivo settings.py de tu proyecto.

Configuración básica en 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"

Uso de archivos estáticos en plantillas

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>

Recolectar archivos estáticos para producción

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.

Algunos ejemplos

  • Incluir CSS y JS personalizados: Puedes organizar tus hojas de estilo y scripts dentro de la carpeta static/css/ o static/js/ y referenciarlos en las plantillas.
  • Imágenes estáticas: Las imágenes como logotipos o íconos se pueden colocar dentro de static/images/ y acceder a ellas con la etiqueta {% static %}.

Referencia oficial

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.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer