/ / Django Media url return 404 NOT FOUND - python, django, media-url

URL-адреса Django Media повертає 404 NOT FOUND - python, django, media-url

У мене є проект джанго. Щоб налаштувати свій медіа-URL, я стежив за док-джанго Django doc - Керування статичними файлами:

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

з налаштувань імпорту django.conf з статичного імпорту django.conf.urls.static

urlpatterns = [ # ... решта вашого URLconf йде тут ... ] + статичні (налаштування.MEDIA_URL, document_root = налаштування.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 НЕ ЗНАЙДЕНО.

Відповіді:

6 за відповідь № 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)

Сподіваюся, що це працює.