Gerenciando arquivos estáticos - Django
Uma aplicação web frequentemente depende de arquivos estáticos, como imagens, arquivos CSS e JavaScript. Neste tema, como configurar e organizar arquivos estáticos em projetos Django.
Configuração Padrão
Ao criar um novo projeto Django, ele já vem configurado para lidar com arquivos estáticos. O arquivo settings.py
STATIC_URL
STATIC_URL = 'static/'
Além disso, a aplicação django.contrib.staticfiles
INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello', # Aplicação criada
]
Com essa configuração inicial, o Django está pronto para gerenciar arquivos estáticos dentro do projeto.
Com o valor padrão de STATIC_URL
static
: para imagens.static/images
: para arquivos CSS.static/css
: para arquivos JavaScript.static/js
Dentro do diretório static/images
forest.jpg
static/css
styles.css
body { font-family: Verdana; }
h1 { color: navy; }
img { width: 350px; }
Com essa estrutura, os arquivos estáticos estão organizados e prontos para ser utilizados em templates.
Uso de Arquivos Estáticos em Templates
PROGRAMICIO hello/ |-- migrations/ |-- static/ | |-- css/ | | |-- styles.css | |-- images/ | |-- forest.jpg |-- templates/ |-- __init__.py |-- admin.py |-- apps.py |-- models.py |-- tests.py |-- views.py programicio/ |-- __init__.py |-- asgi.py |-- settings.py |-- urls.py |-- wsgi.py
Para utilizar arquivos estáticos em templates, é necessário carregar o módulo static
{% load static %}
DOCTYPE
Os arquivos estáticos são referenciados utilizando a tag {% static %}
<!DOCTYPE html>
{% load static %}
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
<title>Exemplo Django</title>
</head>
<body>
<h1>Floresta no Inverno</h1>
<img src="{% static 'images/forest.jpg' %}" alt="Floresta no inverno">
</body>
</html>
Ao executar a aplicação, o template será renderizado em uma página web que aplica os estilos e exibe a imagem.
Configuração de Diretórios Personalizados para Arquivos Estáticos
Se os arquivos estáticos precisarem ser armazenados fora do diretório padrão static
STATICFILES_DIRS
settings.py
STATICFILES_DIRS = [
BASE_DIR / "static",
"/var/www/static/",
"/diretorio_adicional/"
]
Essa configuração permite adicionar múltiplos locais de armazenamento para arquivos estáticos, oferecendo flexibilidade em diferentes cenários.