Как отдаешь статические файлы на production
Python
Junior
Без компании
Как отдаешь статические файлы на production
Ответы
Для отдачи статических файлов в продакшене в Python-приложениях обычно используют:
- **Nginx/Apache** - оптимальный вариант. Веб-сервер напрямую отдает файлы, минуя Python:
```
location /static/ {
alias /path/to/static/files;
expires 30d;
}
```
- **CDN** (CloudFront, Cloudflare) - для глобального кеширования и быстрой доставки.
- **Whitenoise** - если нет возможности использовать отдельный веб-сервер:
```
# settings.py
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
# ...
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
```
Ключевые моменты:
- Не используйте Django dev-сервер для статики в проде
- Настройте правильные HTTP-заголовки (Cache-Control)
- Минимизируйте и сжимайте файлы
- Используйте versioning (manifest) для кеш-инвалидации
Для больших проектов лучше комбинировать Nginx + CDN.