我安装了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'
我在这里缺少什么?
答案 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细节来弥补这个问题。