Изображение Django не может загрузиться правильно, хотя я добавил статический корень

settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'

urls.py

from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('admin/', admin.site.urls),
    path('food/',include('foodApp.urls')),
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

HTML шаблон

<a class="navbar-brand" href="">
        <img src="{% static 'delivery.png' %}">
      </a>

Каталог папок

food_delivery (Main Project)
-- food_delivery
-- foodApp
-- static (folder that puts images)
-- templates
-- manage.py

Для загрузки изображений в Django, HTML шаблон не смог правильно распознать изображение, которое я пытаюсь указать. Я запутался, где я должен разместить папку static в каталоге моего проекта, и я не уверен, что мне не хватает чего-то в файле settings.py для того, чтобы распознать изображения внутри каталога папки static. Может ли кто-нибудь помочь мне найти решение для загрузки изображений, помещенных в каталог папки static?

Вам необходимо добавить статическую конфигурацию поверх конфигурации носителя:

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

Обратите внимание, что if settings.DEBUG не требуется, так как функция static проверяет, находится ли приложение в режиме отладки. Я просто поместил ее здесь для напоминания.

Конечно, если вы не используете MEDIA_ROOT, просто удалите его.

Ваша структура каталогов кажется хорошей, но в settings.py вы должны добавить STATICFILES_DIRS:

STATIC_URL = '/static/'
MEDIA_URL = '/images/'

STATICFILES_DIRS = [
    BASE_DIR / 'static'
]

MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

и поместите delivery.png в папку static.

P.S. Я добавляю static к urlpatterns как if утверждение, как показано ниже, чтобы избежать проблем при последующих развертываниях.

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

#settings.py

INSTALLED_APPS = [
...
'django.contrib.staticfiles',
...
]
TEMPLATES = [ 

{...

        'context_processors': [
            'django.template.context_processors.media',
            'django.template.context_processors.static',
        ],
...}

]

STATIC_URL = '/static/'

STATIC_ROOT = BASE_ROOT / 'static'

MEDIA_URL = '/media/'

MEDIA_ROOT = BASE_ROOT / 'media'

#urls.py

if settings.DEBUG:

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

#html

{% load static %}


<a class="navbar-brand" href="">

    <img src="{% static 'delivery.png' %}">

  </a>
Вернуться на верх