Как я могу исправить ошибку развертывания Django с помощью медиафайлов
Установите мой проект django с nginx, gunicorn и whitenoise; это с использованием среды ubuntu. Когда я загружаю изображение на свой сервер, все получается отлично, но при выполнении запроса он выдает такую ошибку: "GET /media/new/image/Imagen_de_WhatsApp_2024-07-05_a_las_14.24.21_e5e0f412.jpg HTTP/1.1" 404 179 "
Вот конфигурация моих различных файлов:
nginx:
server {
listen 80;
server_name 127.0.0.1;
location /static/ {
alias /home/albert-ubuntu/django-club-page/staticfiles/;
}
location /media/ {
alias /home/albert-ubuntu/django-club-page/media/;
access_log off;
}
location / {
proxy_pass http://127.0.0.1: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-Proto $scheme;
}
}
gunicorn:
#!/bin/bash
NAME="django-club-page" # Nombre de la aplicación Gunicorn
DJANGODIR=/home/albert-ubuntu/django-club-page # Directorio raíz de tu proyecto Django
USER=albert-ubuntu # Usuario bajo el cual se ejecutará Gunicorn
GROUP=albert-ubuntu # Grupo bajo el cual se ejecutará Gunicorn
WORKERS=3 # Número de workers que Gunicorn utilizará
BIND=127.0.0.1:8000 # Dirección y puerto donde Gunicorn escuchará
DJANGO_SETTINGS_MODULE=api.settings # Módulo de configuración de Django que Gunicorn usará
DJANGO_WSGI_MODULE=api.wsgi # Módulo WSGI de Django que Gunicorn cargará
echo "Starting $NAME as `whoami`"
cd $DJANGODIR # Cambiar al directorio de tu proyecto Django
source venv/bin/activate # Activar el entorno virtual de Python (si lo usas)
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH # Añadir el directorio de tu proyecto al PYTHONPATH
# Ejecutar Gunicorn para servir la aplicación Django
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
\--name $NAME \
\--workers $WORKERS \
\--user=$USER --group=$GROUP \
\--bind=$BIND \
\--log-level=info \
\--log-file=-
Setting.py:
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MIDDLEWARE = \[
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
\]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/
STATIC_URL = ('/static/')
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = \[os.path.join(BASE_DIR, 'static')\]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# Configuración de WhiteNoise para la compresión y el almacenamiento en caché
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'