django-photologue создает неправильные URL для фотографий - PullRequest
2 голосов
/ 21 октября 2011

Я установил django-photologue и добавил несколько фотографий в базу данных. Основная механика сайта, кажется, работает нормально, за исключением того, что не отображаются фотографии или эскизы. Изображения и эскизы находятся в .. \ django \ media \ photologue \ photos.

Для страницы photo_detail результирующий источник HTML выглядит следующим образом:

<title>Greece 3</title>
<h1>Greece 3</h1>
<div class="gallery-photo">
  <a href="photologue/photos/greece003.jpg"><img src="photologue/photos/cache/greece003_display.jpg" alt="Greece 3"/></a>
  <p>no caption yet</p>
</div>
<h2>This photo is found in the following galleries:</h2>
<ol>
  <li>
    <a title="Greece 2" href="/photologue/photo/greece-2/"><img src="photologue/photos/cache/greece002_thumbnail.jpg"/></a>
    <a href="/photologue/gallery/greece/">LSB Photos - Greece</a> 
    <a title="Greece 4" href="/photologue/photo/greece-4/"><img src="photologue/photos/cache/greece004_thumbnail.jpg"/></a>
  </li>
</ol>

Мне кажется, что файлы img src не разрешаются в нужное место и поэтому не отображаются. Я думаю, что MEDIA_ROOT и MEDIA_SITE верны, а медиа для других приложений работают так, как я ожидал.

>>> import settings
>>> settings.MEDIA_ROOT
'c:/design.ed/django/media/'
>>> settings.MEDIA_URL
''

А вот что дает мне сам модуль фотолога.

>>> from photologue import models as phl
>>> phl.PHOTOLOGUE_DIR
'photologue'
>>> phl.PHOTOLOGUE_PATH
>>> phl.get_storage_path(None, 'foo.jpg')
'photologue\\photos\\foo.jpg'

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 26 октября 2011

Я думаю, что ответил на свой вопрос.Проблема не имела ничего общего с фотологом: скорее, settings.MEDIA_URL не был установлен правильно (потому что я никогда раньше не обслуживал медиа через Django).

В моем случае я работал локально, используя сервер Django по умолчанию (что я знаю, что вы не должны делать для производства).Так что у меня было это в моем urls.py:

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
   {'document_root': MEDIA_ROOT, 'show_indexes': True}),

, но MEDIA_URL была пустой строкой по умолчанию.Вместо этого я изменил его на

MEDIA_URL = '/site_media/'

, где он и должен быть (в этом случае требуются как передний, так и конечный слеш), и все волшебство сработало.Извиняюсь за помутнение вопроса деталями фотолога.

...