У мене є проект джанго. Щоб налаштувати свій медіа-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)
Сподіваюся, що це працює.