2016-03-29 5 views
8

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

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

ответ

23

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

from django.conf.urls.static import static 
from django.conf import settings 

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

Лучший способ для 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.STATIC_URL, document_root=settings.STATIC_ROOT) 

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

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