【发布时间】:2012-09-18 07:54:35
【问题描述】:
我在使用 sorl-thumbnail 时遇到了一些困难。
我的模板如下:
{% thumbnail project.image "75x75" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% empty %}
<p>:(</p>
{% endthumbnail %}
在我呈现的网页中,我得到以下缩略图路径:
<img src="/media/cache/ff/29/ff299c50543aa807b0fbd28faf271e63.jpg" width="75" height="75">
现在这一切都说得通了,因为我的 MEDIA_URL 设置为 /media/,它在我的 apache httpd.conf 中映射到我服务器上的本地文件夹。
问题是服务器上不存在此路径,因此图像显示为断开的链接。
值得注意的是,我使用的是自定义存储对象,尽管这不会影响事情,因为它直接通过sorl.thumbnail ImageField。另外我正在使用在服务器上运行的memcached 缓存后端。
令人讨厌的是,即使我打开了THUMBNAIL_DEBUG 和DEBUG,我也没有收到任何错误,因此很难看出出了什么问题。我相当确定它无法将缩略图文件写入磁盘但返回成功,因为{% empty %} 语句没有被触发并且适当的缓存文件没有出现在服务器上。由于没有任何错误,我不知道为什么。
我有点卡在这一点上,所以任何帮助都将不胜感激。
编辑:
我现在放弃了 sorl,改用简单的缩略图,效果很好。
【问题讨论】:
-
您是否查看了服务器上的实际文件夹以查看缩略图是否已成功生成或根本没有创建缩略图?如果生成的缩略图没有问题,则可能是您的
MEDIA_URL和MEDIA_ROOT设置或类似设置有问题 -
是的。我已经检查了服务器上的文件夹并且没有创建缩略图。不幸的是,我不确定为什么。我的
MEDIA_ROOT和MEDIA_URL似乎设置正常。他们在网站的所有其他方面工作。 IE。model.image.url方法返回正确的值。
标签: python django sorl-thumbnail