Django is een krachtig framework dat is ontworpen om de complexiteit van webontwikkeling te verminderen. Een essentieel deel van elke Django-applicatie is de organisatie van statische bestanden, zoals CSS, JavaScript en afbeeldingen.
Voor de organisatie van statische bestanden in Django zijn er specifieke praktijken die gevolgd moeten worden.
1. Mappenstructuur: Django zoekt naar statische bestanden in een map met de naam ‘static’ in elk van je applicaties. Het wordt aanbevolen voor elke applicatie een aparte ‘static’ map te gebruiken om conflicten te voorkomen. Bijvoorbeeld, als je een app hebt met de naam ‘blog’, zou de mappenstructuur er ongeveer zo uit kunnen zien:
```
my_project/
blog/
static/
blog/
style.css
views.py
models.py
…
```
1. STATICFILES_DIRS: In je settings.py bestand, voeg de STATICFILES_DIRS instelling toe, die een lijst is van locaties waar Django kijkt naar extra statische bestanden naast die in de ‘static’ map van elke applicatie.
```
STATICFILES_DIRS = [
BASE_DIR / ‘static’,
]
```
1. STATIC_ROOT en collectstatic: De STATIC_ROOT setting in je settings.py bestand is de locatie waar Django alle statische bestanden naar toe kopieert met het collectstatic commando.
```
STATIC_ROOT = BASE_DIR / ‘staticfiles‘
```
Wanneer je ‘python manage.py collectstatic’ uitvoert, verzamelt Django alle statische bestanden in de STATIC\_ROOT map.
1. Refereren naar statische bestanden in templates: Om te refereren naar statische bestanden in je templates, gebruik je de static template tag. Laden de static tag bovenaan het template en refereren naarin een statisch bestand met de volgende syntax:
```
{% load static %}
```
De bovenstaande lijn zal refereren naar de image.jpg in de ‘static’ map van de ‘blog’ app.
1. Serveren van de statische bestanden: In de productieomgeving, wordt het aanbevolen om statische bestanden te serveren met een webserver zoals Nginx of via een CDN. In de ontwikkelomgeving, dienen Django’s runserver plus de ‘django.contrib.staticfiles’ app de statische bestanden.
Deze aanbevelingen zijn afkomstig uit de officiële Django documentatie, een betrouwbare en erkende bron voor best practices in Django ontwikkeling (https://docs.djangoproject.com/en/3.2/howto/static-files/).