Django nginx staticfiles 404

Я пытаюсь разобраться с nginx, обслуживающим статические файлы Django в докерах за https-прокси.

Я пытался в основном следовать этому руководству: https://testdriven.io/blog/django-lets-encrypt/

Все это работало на моей локальной машине, поэтому я перешел на удаленный сервер, работающий на реальном домене за https reverse-proxy.

У меня есть такой docker-compose.yml:

  backend:
    ...
    volumes:
      - ./backend/:/code/
      - static_volume:/code/staticfiles
      - media_volume:/code/mediafiles
    ...



  nginx-proxy:
    ...
    volumes:
      - static_volume:/code/staticfiles
      - media_volume:/code/mediafiles
    ...
    depends_on:
      - backend

У меня есть файл default в каталоге vhost.d со следующими директивами:

location /static/ {
  alias /code/staticfiles/;
  add_header Access-Control-Allow-Origin *;
}

location /media/ {
  alias /code/mediafiles/;
  add_header Access-Control-Allow-Origin *;
}

мои докерные файлы nginx выглядят следующим образом:

FROM jwilder/nginx-proxy:0.9
COPY vhost.d/default /etc/nginx/vhost.d/default
COPY custom.conf /etc/nginx/conf.d/custom.conf

my Django settings.py:

STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'

Я собираю файлы при загрузке бэкенда, и если я обращаюсь к сервисам backend или nginx-proxy, я могу найти свои файлы в правильном месте:

/code/staticfiles/... # all the files are here in the right place...

Поэтому я "предполагаю", что объемы правильные.

/vhosts.d/default также присутствует и находится в правильном месте, когда я вхожу в службу nginx.

Обратный прокси-сервер HTTPS работает отлично. Мой бэкенд является API и вызовы к нему работают отлично. У меня просто нет статических файлов для области администратора.

Однако статические файлы возвращают ошибку 404.

Не возникает никаких ошибок, кроме 404 при загрузке статических активов. Что я делаю неправильно?

Мне пришлось уничтожить все образы и тома, связанные с nginx, и создать их заново.

тогда все получилось. Простого восстановления было недостаточно

Вернуться на верх