Невозможно обработать статические файлы Django + Gunicorn + Nginx + Docker.Python

Программы на Python
Ответить
Anonymous
 Невозможно обработать статические файлы Django + Gunicorn + Nginx + Docker.

Сообщение Anonymous »

В моем проекте есть следующая структура:

-> api_solar_django

--> Manage.py

--> api_app (где находится view.py model.py и т. д.)

--> api_solar (где находятся settings.py и т. д.)

В моем файле docker-compose у меня есть следующее:

Код: Выделить всё

services:
django:
build:
context: ./api_solar_django
container_name: django-app
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- ./api_solar_django:/app
- static_volume:/app/static
environment:
- DJANGO_SETTINGS_MODULE=api_solar.settings
- ENC_KEY=key
depends_on:
- db
networks:
- app-network

nginx:
image: nginx:alpine
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- static_volume:/static
depends_on:
- django
- frontend
networks:
- app-network

networks:
app-network:
driver: bridge

volumes:
postgres_data:
static_volume:
Статические файлы внутри каждого контейнера расположены по адресу:
  • Контейнер Django: папка /app, такая же, как и управление .py
  • Контейнер Nginx: корневая папка
Мой файл nginx.conf настроен как:

Код: Выделить всё

user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

# Incluindo o servidor configurado
server {
listen 80;

# Serve arquivos estáticos do Django
location /static/ {
alias /static/;
}

# Proxy para o backend (Django)
location /api/ {
proxy_pass http://django-app:8090/;
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-Proto $scheme;
}

# Proxy para o frontend (Vue.js)
location / {
proxy_pass http://vue-app:5173;
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-Proto $scheme;
}
}
}
Я пытаюсь получить доступ к панели администратора через http://localhost:8090/admin/, хотя он работает, но не может получить доступ к статическим файлам.

Подробнее здесь: https://stackoverflow.com/questions/793 ... inx-docker
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»