Django Media URL возвращает 404 НЕ НАЙДЕН

У меня есть проект Django. Чтобы настроить мой медиа-URL, я следовал django doc Django doc - Управление статическими файлами:

Например, если ваш MEDIA_URL определен как /media/, вы можете сделать это, добавив следующий фрагмент в ваш urls.py:

из django.conf настройки импорта из django.conf.urls.static импорт статический

urlpatterns = [ # ... остальная часть вашего URLconf идет сюда... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

мои settings.py:

# ....
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_URL = 'http://127.0.0.1:8000'
# ...
MEDIA_URL_REL = '/media/'
MEDIA_URL = BASE_URL + MEDIA_URL_REL
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

мой urls.py:

from django.conf import settings
from django.conf.urls import url, include
from django.conf.urls.static import static

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

Мои загруженные файлы находятся в корне мультимедиа, но когда я получаю доступ к URL- адресу мультимедиа [ http://127.0.0.1:8000/media/proof/img.pdf ], он возвращает HTTP 404 NOT FOUND.

1 ответ

Решение

Пожалуйста, не делайте URL с жестким кодом. Это больше, чем плохая практика.

BASE_URL = 'http://127.0.0.1:8000'

Вы не можете так писать.

Ваше решение,

settings.py

MEDIA_URL = '/media/'

urls.py

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

Надеюсь, это работает.

Другие вопросы по тегам