Django Nginx Gunicorn-Media Файлы Не Отображаются

Разворачиваю проект на django в docker цепляю nginx не работают медиа файлы nginx их не видит.

Вот настройки NGINX

upstream web {
    server web:8000;
}

server {

    listen 80;
    server_name api.domen.club;
    return 301 https://api.domen.club$request_uri;

}

server {

    listen 443 ssl;
    server_name api.domen.club;
    ssl_certificate /etc/ssl/cert/domen.club.crt;
    ssl_certificate_key /etc/ssl/cert/domen.club.key;

    location /static/ {
        alias /usr/src/app/static/;
    }
    location /media/ {
        root /usr/src/app/media/;
    }

    location / {
        client_max_body_size 100M;
        proxy_pass http://web;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    }

}

Вот Docker

FROM python:3.8-alpine
# set work directory
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1


RUN python -m pip install --upgrade pip
# install psycopg2 dependencies
RUN apk update \
    && apk add postgresql-dev gcc python3-dev musl-dev

# install dependencies
RUN apk update && apk add g++ gcc libxml2 libxslt-dev
COPY ./requirements.txt .

#COPY ./entrypoint.sh .
#RUN chmod +x entrypoint.sh

RUN pip install -r requirements.txt

RUN apk --update add build-base jpeg-dev zlib-dev
RUN python3 -m pip install --upgrade Pillow


# copy project
COPY . .

#ENTRYPOINT ["/usr/src/app/entrypoint.sh"]

Docker-compose

version: '3.7'

services:
  web:
    build: .
    command:  sh -c "python manage.py makemigrations && python manage.py migrate && gunicorn health_gate.wsgi:application --bind 0.0.0.0:8000 --reload -w 4"
    volumes:
      - ./:/usr/src/app/
      - static_volume:/usr/src/app/static
    ports:
      - "8000:8000"
    env_file:
      - ./.env.dev
    depends_on:
      - db
  db:
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=heal_user
      - POSTGRES_PASSWORD=haeryr^dasd^dfg
      - POSTGRES_DB=heal
  nginx:
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web
    volumes:
      - ./nginx/cert:/etc/ssl/cert
      - static_volume:/usr/src/app/static
volumes:
  postgres_data:
  static_volume:

URL

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include('api.urls')),
    path('api-auth/', include('rest_framework.urls')),
    path('api/token/', TokenObtainPairView.as_view()),
    path('api/token/refresh/', TokenRefreshView.as_view()),
    path('api/token/verify/', TokenVerifyView.as_view()),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

В .ENV файле стоит True

В setings прописанно

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'


if DEBUG == True:
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
else:
    STATIC_ROOT = os.path.join(BASE_DIR, "static")
STATIC_URL = "/static/"

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