sorl-thumbnail没有创建缩略图

时间:2012-09-26 16:10:03

标签: python django sorl-thumbnail

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_DEBUGDEBUG,我也没有收到任何错误,因此很难看出出现了什么问题。我很确定它没有将缩略图文件写入磁盘但返回成功,因为{% empty %}语句没有被触发,并且相应的缓存文件没有出现在服务器上。我不知道为什么但由于没有任何错误。

我有点被困在这一点上,所以任何帮助都会受到赞赏。

编辑:

我现在已经放弃了sorl,而是使用简单的缩略图,而且工作正常。

2 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,我无法使用easy-thumbnails,因为我需要从外部来源创建缩略图。我发现在staging上使用的是与开发相同的数据库,所以在开发后渲染图像后,它将缓存的文件名存储到数据库中,当你尝试在staging上渲染时,它从同一个文件中获取文件名数据库,但显然这些文件没有登台。

尝试运行

./manage thumbnail clear

答案 1 :(得分:0)

Sorl没有为我们创建缩略图,因为我们使用了错误编码的网址。对于空格,它们将包含'+'而不是''或'%20',而sorl会将它们重新编码为'%2B'('+'编码)。生成的url错误被抑制,缩略图创建被忽略。也许这有助于解决这个问题的人。