Изображения не отображаются на производственном сервере Django

Я загрузил несколько иконок в каталог static/img/ в моем проекте Django, который основан на интерфейсе Django Admin. У меня есть один тестовый сервер и один рабочий сервер. Оба используют https://fra1.digitaloceanspaces.com для хранения статических файлов проекта. Для отображения определенных иконок я создал пользовательское поле в Django ModelAdmin:

    def get_type(self, obj):
        return format_html(
            '<img alt="type" src="{static_url}/img/type_icons/type-{type}.png">',
            static_url=settings.STATIC_URL,
            type=obj.type
        )

project/settings.py

  • При локальной разработке STATIC_URL = '/collected-static/'.
  • В режиме разработки и производства STATIC_URL = '{}/{}/static/'.format(AWS_S3_ENDPOINT_URL, AWS_STORAGE_BUCKET_NAME).

AWS_S3_ENDPOINT_URL это https://fra1.digitaloceanspaces.com.
AWS_STORAGE_BUCKET_NAME имеет значение project-develop (тестирование) или project (производство). Эти переменные настраиваются в YAML-файле развертывания.

Локально и в режиме разработки (тестирования) изображения прекрасно отображаются таким образом, но в режиме производства изображения не отображаются вообще. Я пробовал менять расположение файлов и даже менять конфигурацию развертывания, но ничего не помогает добиться отображения иконок в production.

/collected-static/img/type-object_type.png (пример иконки img src на localhost - OK)
https://fra1.digitaloceanspaces.com/project-develop/static/img/type-object_type.png (пример иконки img src на тестовом сервере - OK)
https://fra1.digitaloceanspaces.com/project/static/img/type-object_type.png (пример иконки img src в продакшене - NOT DISPLAYING)

Я хотел бы услышать ваше мнение о проблеме, с которой я столкнулся. Я бьюсь над этим уже довольно долгое время. Возможно, есть лучший способ работы со статическими файлами в Django Admin.

  • проверка разрешения статического каталога на рабочем сервере

  • если вы используете веб-сервер типа Nginx для обслуживания статической директории будет полезно

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