Django. не может получить доступ к статическим файлам в локальной разработке

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

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

template.html

{% load static %}

<img src="{% static 'apis/icons/random-svgrepo-com.svg' %}" style="width: 50px;">

Теперь у меня есть папка staticfiles в папке BASE_DIR, но когда я пытаюсь получить изображение, кажется, что оно не работает, как ожидалось.

http://127.0.0.1:8000/static/apis/icons/random-svgrepo-com.svg

Working directory

Помогите, пожалуйста. Что я делаю неправильно?

Во-первых, я думаю, что у вас не настроены статические файлы и медиафайлы. Попробуйте настроить их следующим образом. В файле settings.py убедитесь, что вы включили STATICFILES_DIR, STATIC_ROOT, MEDIA_URL, MEDIA_ROOT в ваш settings.py и затем добавьте следующие строки STATIC_URL = 'static/'

MEDIA_URL = 'media/'
STATICFILES_DIRS = [BASE_DIR / 'static']
STATIC_ROOT = BASE_DIR / 'staticfiles/'
MEDIA_ROOT = BASE_DIR / 'static/media'

Этим вы указываете django, где взять ваши статические файлы. Теперь вам нужно добавить ссылку на статические файлы в ваш проект urls.py. Вы добавите ее как показано ниже.

from django.conf import settings
from django.conf.urls.static import 
static

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

Последняя вещь, которую, как я предполагаю, вы уже сделали, это создание папки static в корне проекта и внутри этой папки static создайте папку media, в которой будут находиться все изображения, которые вы хотите загрузить. Теперь запустите python manage.py collectstatic

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