django-photologue为照片构建错误的URL

时间:2011-10-20 23:43:52

标签: django photologue

我安装了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
''

这就是photologue模块本身给我的东西。

>>> 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 :(得分:0)

我想我已经回答了我自己的问题。这个问题与photologue没有任何关系:相反,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/'

这应该是它的位置(在这种情况下需要前导斜杠和尾随斜杠),并且所有魔法都有效。抱怨用photologue细节来弥补这个问题。