Django Rest + Gunicorn, отсутствуют статические файлы для администратора
Я запускаю Django REST с помощью gunicorn и обслуживаю его с помощью NGINX.
ПРОБЛЕМА:
Статические файлы для администратора обслуживаются некорректно, в то время как статические файлы для маршрутов API обслуживаются.
КОНФИГУРАЦИЯ:
docker-compose.yml
drf:
...*
volumes:
- .:/code
- static_files:/static_files
depends_on:
- postgres
nginx:
...*
volumes:
- static_files:/static_files
ports:
- 8081:8081
nginx.conf
server {
listen 8081;
server_name localhost;
access_log /var/log/nginx/example.log;
server_tokens off;
include /etc/nginx/mime.types;
location /static {
autoindex off;
alias /static_files/;
}
location ~ (api|admin) {
proxy_pass http://drf:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
Settings.py
STATIC_URL = "/static/"
STATIC_ROOT = "/static_files/"
При развертывании я также выполняю следующую команду:
python manage.py collectstatic
Я вижу, что маршруты API имеют статические файлы, а /admin - нет. Однако файлы могут быть найдены внутри тома docker.
И есть один лог из контейнера nginx, где мы видим, что nginx пытается получить доступ к нужному статическому файлу...:
ADMIN САЙТА
GET /static/admin/css/responsive.css HTTP/1.1" 404
API САЙТ
GET /static/rest_framework/js/default.js HTTP/1.1" 200