06.03.2010 14:46

  1. перерыл и форум и все источники. Как мне кажется, всё настроил верно, но картинки не показываются...
    Windows ХР, используется встроенный джанговский сервер.
    сама картинка лежит в виндовсе E:\MySites\vodoley\public\img\
    проект - vodoley

    settings:
    MEDIA_ROOT = ''
    MEDIA_URL = '/public/'
    ADMIN_MEDIA_PREFIX = '/media/admin/'
    urls:
    if settings.DEBUG:
    urlpatterns += patterns('',
    (r'^public/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': settings.MEDIA_URL}),
    )
    шаблон:
    <img src="{{ MEDIA_URL }}img/button_del.png"

    исходный код в браузере:
    <img src="/public/img/button_del.png">
    при показе картинка не выводится.
    если в браузере набрать адрес картинки http://127.0.0.1:8000/public/img/button_del.png
    получим:
    Request Method:  	GET
    Request URL: http://127.0.0.1:8000/public/img/button_del.png
    "/public/img/button_del.png" does not exist
    помогите разобраться, пожалуйста.
    В MEDIA_URL вставлял и виндошный путь к файлу, и полный путь "http://127.0.0.1:8000/public/" , буквально все варианты перепробовал...
    в static.py выполнение заходит, я вставлял трассировку, да собственно и ошибка оттуда же ведь выводится.
  2. alxrem

    1 ↑
    1 ↓

    MEDIA_ROOT должен быть прописан:

    # Absolute path to the directory that holds media.
    # Example: "/home/media/media.lawrence.com/"
    MEDIA_ROOT = ''
    
  3. И в урлах document_root = MEDIA_ROOT, а не MEDIA_URL

  4. anonymous

    0 ↑
    1 ↓
    В urls.py:
    from django.conf import settings
    import os.path

    site_media = os.path.join(
    os.path.dirname(__file__), 'templates'
    )

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

    TEMPLATE_DIRS = (
    "c:/project/my_new_project/templates/",
    )
    В самом шаблоне html используешь таким образом
    <img src="/site_media/images/kartinka.gif"/>
    Похоже на грязный хак немного, но для дебага на встроенном сервере пойдёт.
  5. Спасибо, получилось.
    Проблема была в "полном пути" - мне казалось что нужно было указывать протокол, типа http:// или file:// ну или путь от корня диска. Ан нет, просто тупо виндошный путь к папке включая букву диска.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.