Как я могу хранить изображения на сервере и обслуживать их с помощью nginx и django?

Я создал приложение Django и использую Gunicorn и Nginx на сервере Ubuntu. Nginx обслуживает мои статические файлы и отлично работает для css файлов и javascript, но у меня проблемы с изображениями. Приложение - это мой личный блог, и я использую Django ckeditor для загрузки изображений и написания текста. Все работало как надо, пока я использовал локальный сервер, но когда я развернул его на облачном сервере, изображения не отображаются.

вот мой проект/app/models.py

from django.db import models
import uuid
from ckeditor_uploader.fields import RichTextUploadingField

# Create your models here.

class Category(models.Model):
    title = models.CharField(max_length=150)
    created = models.DateTimeField(auto_now_add=True)
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)

    def __str__(self):
        return self.title


class Article(models.Model):
    title = models.CharField(max_length=150)
    description = models.CharField(max_length=150, blank=True, null=True)
    body = RichTextUploadingField(blank=True, null=True)
    profile_image = models.ImageField(null=True, blank=True, default='default.png')
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['-created']

Код ниже находится в settings.py:

STATIC_URL = '/static/'
MEDIA_URL = '/media/'

STATICFILES_DIRS = [
    BASE_DIR / 'static'
]
 
MEDIA_ROOT = '/var/www/my-website.com/media'
STATIC_ROOT = '/var/www/my-website.com/static'
CKEDITOR_UPLOAD_PATH = 'uploads/'

В проект urls.py я добавляю:

urlpatterns = [
    .
    .
    .
    path('ckeditor', include('ckeditor_uploader.urls')),
]

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

Я создаю файл конфигурации Nginx в /etc/nginx/sites-available/myWebsite и он выглядит следующим образом:

server_tokens           off;
access_log              /var/log/nginx/my-website.access.log;
error_log               /var/log/nginx/my-website.error.log;

server {
    server_name         .my-website.com;
    listen              80;

    location / {
        proxy_pass              http://localhost:8000;
        proxy_set_header        Host $host;
        proxy_set_header        X-Forwarded-Proto $scheme;
    }

    location /static {
        autoindex on;
        alias /var/www/my-website.com/static/;
    }

    location /media {
        autoindex on;
        alias /var/www/my-website.com/media/;
    }


}

Я создал каталоги /var/www/my-website.com/static/ и /var/www/my-website.com/media/
. и выполнил следующие команды:

sudo chown -cR user:user /var/www/my-website.com/static/
sudo chown -cR user:user /var/www/my-website.com/media/

вот как это выглядит, когда я хочу загрузить изображение с помощью ckeditor я нажимаю на "загрузить" и "Отправить на сервер":

Изображение не хочет отображаться.

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