it-swarm.com.ru

Страница не найдена 404 Django медиа-файлы

Я могу загрузить файлы в папку мультимедиа ('/peaceroot/www/media/'), которую я настроил в settings.py, как показано ниже

MEDIA_ROOT = '/peaceroot/www/media/'
MEDIA_URL = '/media/'

Но через админа я пытался получить доступ к загруженному файлу изображения

http: // localhost: 8000/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg

тогда я получаю ошибку 404. 

Файл существует в peaceroot/www/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg

16
madhu131313

Добавьте медиа-запись в ваш проект urlpatterns:

from Django.conf.urls.static import static
from Django.conf import settings

...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
40
v1k45

Лучший способ для MEDIA_ROOT -

попытайтесь сделать динамический путь мультимедиа легким, когда вы перенесете свой проект.

Settings.py

BASE_DIR = os.path.dirname(os.path.dirname(__file__))


MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'

urls.py

from Django.conf import settings
from Django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Посмотри на это

https://docs.djangoproject.com/en/dev/howto/static-files/

7
Kjjassy

Просто добавлю: в случае, если другие ответы не работают для вас, попробуйте поставить статический URL-адрес перед другими. Вот так:

urlpatterns = static(...) + [...]

Может случиться так, что некоторые из ваших шаблонов в списке не позволяют запросу достичь статических обработчиков. Таким образом, размещение статических обработчиков сначала решает эту проблему. Работал на меня. 

1
Seyi Shoboyejo