URL-адрес Django Media возвращает 404 NOT FOUND

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

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

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

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

my 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/')

my 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
источник поделиться
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)

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

+6
источник

Посмотрите другие вопросы по меткам или Задайте вопрос