Статические файлы 404 django (docker+nginx)
Что не так в настройках статических файлов? Если запускать без docker и nginx - работает нормально. Я пробовал вручную collectstatic, но это не помогает
settings.py
import os
from pathlib import Path, PurePath
BASE_DIR = Path(__file__).parent.parent
STATIC_ROOT = PurePath(BASE_DIR.parent, "static/")
STATIC_URL = "/static/"
nginx.conf
events {
worker_connections 1024;
}
http {
sendfile on;
upstream app_server {
server django:8000;
}
server {
server_tokens off;
listen 80;
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Methods GET,POST,DELETE,PUT,PATCH,OPTIONS;
add_header Access-Control-Allow-Headers X-Requested-With,Content-Type;
location /static/ {
alias /static/;
expires 1y;
access_log off;
add_header Cache-Control "public";
include /etc/nginx/mime.types;
}
location / {
root /var/www/contacts/static/;
index index.html;
}
location ~ ^/(manage|categories|events|persons|swagger|redoc|events) {
proxy_pass http://app_server;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
}
часть docker-compose
django:
tty: true
build:
context: ../backend
dockerfile: Dockerfile
command: bash -c "poetry run gunicorn -c /etc/gunicorn/gunicorn.conf.py project.wsgi:application & poetry run python manage.py makemigrations & poetry run python manage.py migrate & poetry run python manage.py rundramatiq"
container_name: contacts_django
env_file: ../secrets/django.env
depends_on:
- postgresql
image: contacts_django
networks:
- contacts_app_to_db
ports:
- 8000:8000
restart: unless-stopped
volumes:
- ../static:/static
nginx:
tty: true
build:
context: ../services/nginx/
dockerfile: Dockerfile
container_name: contacts_nginx
depends_on:
- django
env_file: ../secrets/nginx.env
image: contacts_nginx
networks:
- contacts_nginx_to_app
ports:
- 89:80
restart: unless-stopped
volumes:
- ../static:/static
Я думаю, что это из-за томов в docker или неправильного конфига nginx, но где ошибка не могу найти. Staticcollect мне нужно запускать вручную или нет?