2011-04-21 3 views
0

У меня есть новый проект django под названием mysite. Внутри mysite находится папка с именем static, где все мои изображения.Ссылка на изображение в Django

Внутри MySite также папка шаблонов с файлом index.html с следующим базовым кодом:

<html> 
<head></head> 
<body><img src = WHAT GOES HERE?? /> 
</html> 

У меня есть этот views.py файл в моей папке MySITE:

from django.shortcuts import render_to_response 
def index(request): 
    return render_to_response('index.html',) 

В моем файле settings.py STATIC_URL = '/ static /'

Каков точный текст, который должен находиться внутри моего тега img, чтобы правильно ссылаться на файл статического изображения (примечание: я не ищу для ссылок на документацию). И мне нужно изменить любую структуру папок/настроек? Спасибо.

Я добавил следующий тег:
< IMG SRC = "{{}} STATIC_URL logo.jpg" />

Тем не менее, по-прежнему не загружается - это, кажется, будет правильно путь (путь изображения в браузере говорит 127.0.0.1:8000/static/logo.jpg.). Что мне нужно изменить, чтобы это правильно загрузилось? И я проверил, чтобы изображение находилось в этом месте.

UPDATE: это, как я, наконец, получил его на работу:

if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root':  sttings.MEDIA_ROOT}), 
) 

(я использую MEDIA_URL вместо static_url). Есть ли более простой способ сделать это?

ответ

0

David542,

Ваша структура должна быть чем-то вроде следующего.

MyProject 
    \MySite 
     \static 

Эта статическая папка будет обслуживаться при использовании сервера запуска. Когда вы перемещаете свою работу в производственную среду, вы хотите использовать django's ./manage.py collectstatic и обязательно загрузите статический носитель на статическом URL, указанном в файле settings.py. Так что если у вас есть изображение в вашей статической папке, вы можете обратиться к нему, указав /static/some_image.png

Staticfiles не был включен в Django до версии 1.3. Если вы старше 1.3, это объясняет, почему ваша текущая настройка не работает для вас. (Я предполагаю, что это ваша проблема.)

Надеюсь, это поможет.

Редактировать: И если обслуживание, введя свой путь, все работает для вас и вашего удобства, вы действительно должны использовать то, что сказал другой ответ, и использовать {{ STATIC_URL }}hi.jpg, как если бы вы решили изменить свой статический URL-адрес, вам не придется менять свои шаблоны чтобы соответствовать, так как они будут работать автоматически.

+0

@ wilbbe01 Моя версия Django - это ... >>> django.VERSION (1, 3, 0, 'final', 0) – David542

+0

Используете ли вы встроенный 'manage.py runningerver'? – wilbbe01

+0

Какие у вас разрешения на изображение? – wilbbe01

0

Если изображение называется "hi.jpg", это будет выглядеть следующим образом:

IMG SRC = "{{}} STATIC_URL hi.jpg"

Это было бы решить в файл закачанный в каталог STATIC_URL, в вашем примере это будет:

/static/hi.jpg

+0

Я добавил (а) следующий тег: . Тем не менее, он по-прежнему не загружается - кажется, он идет по правильному пути (путь изображения в браузере говорит http://127.0.0.1:8000/static/logo.jpg.). Что мне нужно изменить, чтобы это правильно загрузилось? И я проверил, чтобы изображение находилось в этом месте. – David542

+0

Я не уверен, что означает «не загружается», в частности. Хорошим тестом является то, что, пока сервер работает, перейдите прямо к URL-адресу, в данном случае «http://127.0.0.1:8000/static/logo.jpg». Вы видите изображение? Если вы этого не сделаете, вы не настроили статический хостинг. – mattv

Смежные вопросы