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,而是使用简单的缩略图,而且工作正常。
答案 0 :(得分:2)
我遇到了类似的问题,我无法使用easy-thumbnails
,因为我需要从外部来源创建缩略图。我发现在staging上使用的是与开发相同的数据库,所以在开发后渲染图像后,它将缓存的文件名存储到数据库中,当你尝试在staging上渲染时,它从同一个文件中获取文件名数据库,但显然这些文件没有登台。
尝试运行
./manage thumbnail clear
答案 1 :(得分:0)
Sorl没有为我们创建缩略图,因为我们使用了错误编码的网址。对于空格,它们将包含'+'而不是''或'%20',而sorl会将它们重新编码为'%2B'('+'编码)。生成的url错误被抑制,缩略图创建被忽略。也许这有助于解决这个问题的人。