Как реализовывал статику на продакшн
Python
Junior
Без компании
Как реализовывал статику на продакшн
Ответы
Для раздачи статики в продакшне обычно используют:
- **Nginx/Apache** - настраивают отдельный сервер/локацию для статики с правильными заголовками кэширования:
```
location /static/ {
alias /path/to/static/;
expires 30d;
add_header Cache-Control "public";
}
```
- **CDN** (CloudFront, Cloudflare) - ускоряет доставку статики географически распределенными серверами.
- **WhiteNoise** для Django - middleware для раздачи статики прямо из Python:
```
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
```
- **S3 + CloudFront** - популярное решение для хостинга статики:
```
AWS_STORAGE_BUCKET_NAME = 'my-bucket'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
```
Ключевые моменты:
- Настройка правильного кэширования (Cache-Control, ETag)
- Сжатие (gzip, brotli)
- Минификация и объединение файлов
- Версионирование (добавление хэша к именам файлов)