Страница не найдена 404 медиафайлов Django
Я могу загрузить файлы в папку "media" ( '/peaceroot/www/media/'
), который я установил в settings.py
ниже
MEDIA_ROOT = '/peaceroot/www/media/'
MEDIA_URL = '/media/'
но через admin я попытался получить доступ к загруженному файлу изображения
http://localhost:8000/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg
тогда я получаю ошибку 404.
файл существует в peaceroot/www/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg
3 ответов
добавить запись media url в проект urlpatterns:
from django.conf.urls.static import static
from django.conf import settings
...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
лучший способ для MEDIA_ROOT,
попробуйте сделать Media path динамическим будет легко, когда вы сдвинете свой проект.
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)
смотреть на это
просто добавить: в случае, если другие ответы не работают для вас, попробуйте поместить статический url-адрес перед другими. Вот так:
urlpatterns = static(...) + [...]
возможно, некоторые из ваших шаблонов в списке не позволяют запросу достичь статических обработчиков. Таким образом, установка статических обработчиков сначала решает это. Работать на меня.