我已经安装了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'这里我漏掉了什么?
发布于 2011-10-26 07:36:55
我想我已经回答了我自己的问题。这个问题与照片无关:相反,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/'这就是它应该在的位置(在本例中,前导斜杠和尾随斜杠都是必需的),并且所有的魔术都起作用了。很抱歉用照片细节遮蔽了这个问题。
https://stackoverflow.com/questions/7843557
复制相似问题