Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用nginx(docker compose)提供django媒体文件_Django_Docker_Nginx_Docker Compose_Nginx Config - Fatal编程技术网

无法使用nginx(docker compose)提供django媒体文件

无法使用nginx(docker compose)提供django媒体文件,django,docker,nginx,docker-compose,nginx-config,Django,Docker,Nginx,Docker Compose,Nginx Config,我正在使用docker compose运行react django nginx应用程序。应用程序能够为静态资产和管理页面提供服务器。但问题是,我无法提供媒体文件夹中的文件 介质文件夹中的文件由我从管理面板创建。它们是PDF。我也有图标,也不显示。基本上,我从管理面板添加PDF,然后在前端使用它们。问题是,当我知道PDF将进入媒体文件夹时,ngnix返回404 meidafiles应该位于链接:https://localhost:8000/media/todo.pdf 以下是相关文件: 文件夹结构

我正在使用docker compose运行react django nginx应用程序。应用程序能够为静态资产和管理页面提供服务器。但问题是,我无法提供媒体文件夹中的文件

介质文件夹中的文件由我从管理面板创建。它们是PDF。我也有图标,也不显示。基本上,我从管理面板添加PDF,然后在前端使用它们。问题是,当我知道PDF将进入媒体文件夹时,ngnix返回404

meidafiles应该位于链接:
https://localhost:8000/media/todo.pdf

以下是相关文件:

文件夹结构: docker compose: 后端Docker nginx
backend
  |---Docker
  |---core
      |---settings.py
      |---etc
frontend
  |---Docker
  |---conf.d
  |---etc.
ngnix
  |---Docker
  |---default.conf
docker-compose.yaml
    
version: "3"
services:
  backend:
    build:
      context: ./backend
      dockerfile: Dockerfile
    ports:
      - 8000:8000
    volumes:
      - ./backend:/app
      - ./backend/media:/app/media
      - ./backend/static:/app/static
  frontend:
    build:
      context: ./frontend
      dockerfile: Dockerfile-prod
    ports:
      - 3000:80
    volumes:
      - ./frontend/src:/app/src
  nginx:
    build:
      context: ./nginx
      dockerfile: Dockerfile
    volumes:
      - ./backend/media:/app/media
    ports:
      - 80:80
      - 443:443
FROM python:3.8

RUN apt-get update && \
    apt-get install -y binutils libproj-dev

COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip install -r requirements.txt
COPY . /app

VOLUME /app/media
VOLUME /app/static

EXPOSE 8000

ENTRYPOINT ["gunicorn"]
CMD ["--workers", "1", "--bind", ":8000", "--log-level", "INFO", \
     "teachers_portal.wsgi:application"]
server {
    listen 80;
    client_max_body_size 60M;

    location / {
        proxy_pass http://frontend:3000;
        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;
    }

    location /api {
        proxy_pass http://backend:8000;
        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;
    }

    location /admin {
        proxy_pass http://backend:8000/admin;
        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;
    }

    location /media/ {
        alias /home/vicktree/Documents/EducationPortal/backend/media/;
    }

    location /nginx-health-check {
        access_log off;
        return 200;
    }

}