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