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)
Надеюсь, это работает.