Получение медиафайлов при рендеринге с помощью django

Надеюсь, это простой вопрос, на который я пока не могу найти ответа в Интернете.

Предыстория: У меня есть веб-приложение django, которое размещено на render.com. Все работает, кроме медиафайлов, которые размещены на купленном диске (смонтированном в /var/data) для моего проекта.

Я следовал документации и добавил следующее в файл settings.py:

MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/data'   

медиаконтекст установлен:

           "context_processors": [
                "django.template.context_processors.debug",
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
                "django.template.context_processors.media",
            ],

У меня настроены urlpatterns для медиа:

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

whitenoise настроен:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

requirements.txt

asgiref==3.8.1
click==8.1.8
dj-database-url==2.3.0
Django==5.1.4
django-crispy-forms==2.3
gunicorn==23.0.0
h11==0.14.0
packaging==24.2
pillow==11.0.0
psycopg2-binary==2.9.10
sqlparse==0.5.3
typing_extensions==4.12.2
uvicorn==0.34.0
whitenoise==6.8.2

index.html


{% extends "airfryer_app/base.html" %}

{% block body %}



  <div class="product-container flex flex-wrap justify-content-center">


    {% for recipe in recipes %}
      <div class="product shadow-lg w-1/5 rounded-lg m-10">
        <div class="product-image">
          <img src="{{ recipe.image.url }}" alt="">
        </div>

        <div class="p-5">
          <div class="font-bold">
            {{ recipe.name }}
          </div>
          <div>
            {{ recipe.description }}
          </div>
          <div class="text-orange-700 font-bold text-orange">
            {{ recipe.time }} minutes
          </div>
          <div class="mt-5">
            <a class="bg-green-500 hover:bg-green-700 text-white font-bold py-2 px-4 rounded"
               href="{% url 'recipe' recipe.id %}">View Details</a>
          </div>
        </div>
      </div>
      {% if forloop.counter|divisibleby:3 %}
        <div class="w-full"></div>
      {% endif %}
    {% endfor %}
  </div>
{% endblock %}

Используя веб-приложение, я могу загружать пользовательские изображения в /var/data, но когда я пытаюсь их получить, то получаю следующие ошибки:

10.217.41.72 - - \[09/Jan/2025:13:20:43 +0000\] "GET /media/croissant.jpg HTTP/1.1" 404 179 "https://airfryer-recipes.onrender.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
10.217.185.86 - - \[09/Jan/2025:13:20:43 +0000\] "GET /media/bacon.jpg HTTP/1.1" 404 179 "https://airfryer-recipes.onrender.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

Файлы изображений загружены в правильное место.

Кроме того, при разрешении url (https://airfryer-recipes.onrender.com/media/croissant.jpg) я получаю 404 ошибку

Not Found
The requested resource was not found on this server.
10.217.209.166 - - \[09/Jan/2025:13:23:19 +0000\] "GET /media/croissant.jpg HTTP/1.1" 404 179 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

Используя веб-приложение, я могу загружать пользовательские изображения в /var/data, но когда я пытаюсь их получить, то получаю следующие ошибки:

10.217.41.72 - - \[09/Jan/2025:13:20:43 +0000\] "GET /media/croissant.jpg           HTTP/1.1" 404 179 "https://airfryer-recipes.onrender.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
10.217.185.86 - - \[09/Jan/2025:13:20:43 +0000\] "GET /media/bacon.jpg HTTP/1.1" 404 179 "https://airfryer-recipes.onrender.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

Кроме того, при разрешении url (https://airfryer-recipes.onrender.com/media/croissant.jpg) я получаю 404 ошибку

Not Found
The requested resource was not found on this server.

10.217.209.166 - - \[09/Jan/2025:13:23:19 +0000\] "GET /media/croissant.jpg HTTP/1.1" 404 179 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"

Есть

ли у кого-нибудь предположения о том, что может быть причиной этой проблемы?

Любая помощь будет высоко оценена.

Спасибо

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