День добрый. Проблема у меня похожая - не выводятся изображения на html странице в django (При простом запуске страницы в браузере всё выводится). Использую django 1.5.1. Изображения хранятся в папке /home/jokull/Documents/Diplom/site/grafema/grafema/123
Собственно:
.
├── grafema
│ ├── 123
│ │ ├── deusex.html
│ │ ├── deusex.html~
│ │ ├── img
│ │ │ ├── logo.png
│ │ │ └── Shapka.png
│ │ ├── index.html~
│ │ ├── prof
│ │ └── Shapka.png
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── prim.html
│ ├── prim.html~
│ ├── settings.py
│ ├── settings.py~
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.py~
│ ├── urls.pyc
│ ├── views.py
│ ├── views.py~
│ ├── views.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── manage.py
Отрывок из settings.py, где прописана MEDIA.
MEDIA_ROOT = '/home/jokull/Documents/Diplom/site/grafema/grafema/123'
MEDIA_URL = '/123/'
urls.py
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from grafema.views import example
from django.conf import settings
urlpatterns = patterns('',
('^xmpl/$', example),
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)
views.py
# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
from django.template.loader import get_template
from django.http import HttpResponse
from django import template
def example(request):
return render_to_response('deusex.html', {})
deusex.html
<html>
<head>
<title>Graf</title>
<img src="/home/jokull/Documents/Diplom/site/grafema/grafema/123/Shapka.png" alt="123">
</head>
<body>
</body>
</html>
Перепробовал уже много способов но результат всегда один, сервер выдаёт сообщение:
GET /home/jokull/Documents/Diplom/site/grafema/grafema/123/Shapka.png HTTP/1.1" 404 2211
Т.е. о том, что не находит изображение.
Далее мне не пришло ничего умнее в голову, чем посмотреть адреса MEDIA через shell
python manage.py shell
from django.conf import settings
settings.MEDIA_ROOT
''
Выдал пустое значение, хотя я и прописывал его в файле settings.
В результате долго гуглив я не нашёл решения своей проблемы.
Что можете посоветовать вы? Какие моменты я упустил?