【问题标题】:sorl-thumbnail not creating thumbnailssorl-thumbnail 不创建缩略图
【发布时间】: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 %}

在我呈现的网页中,我得到以下缩略图路径:

&lt;img src="/media/cache/ff/29/ff299c50543aa807b0fbd28faf271e63.jpg" width="75" height="75"&gt;

现在这一切都说得通了,因为我的 MEDIA_URL 设置为 /media/,它在我的 apache httpd.conf 中映射到我服务器上的本地文件夹。

问题是服务器上不存在此路径,因此图像显示为断开的链接。

值得注意的是,我使用的是自定义存储对象,尽管这不会影响事情,因为它直接通过sorl.thumbnail ImageField。另外我正在使用在服务器上运行的memcached 缓存后端。

令人讨厌的是,即使我打开了THUMBNAIL_DEBUGDEBUG,我也没有收到任何错误,因此很难看出出了什么问题。我相当确定它无法将缩略图文件写入磁盘但返回成功,因为{% empty %} 语句没有被触发并且适当的缓存文件没有出现在服务器上。由于没有任何错误,我不知道为什么。

我有点卡在这一点上,所以任何帮助都将不胜感激。

编辑:

我现在放弃了 sorl,改用简单的缩略图,效果很好。

【问题讨论】:

  • 您是否查看了服务器上的实际文件夹以查看缩略图是否已成功生成或根本没有创建缩略图?如果生成的缩略图没有问题,则可能是您的 MEDIA_URLMEDIA_ROOT 设置或类似设置有问题
  • 是的。我已经检查了服务器上的文件夹并且没有创建缩略图。不幸的是,我不确定为什么。我的MEDIA_ROOTMEDIA_URL 似乎设置正常。他们在网站的所有其他方面工作。 IE。 model.image.url 方法返回正确的值。

标签: python django sorl-thumbnail


【解决方案1】:

我和你有非常相似的问题,我不能使用easy-thumbnails,因为我需要从外部来源创建缩略图。我发现在暂存时使用与开发相同的数据库,因此在我渲染开发图像后,它将缓存的文件名存储到数据库中,当您尝试在暂存时渲染时,它会从同一数据库中获取文件名数据库,但显然文件不在暂存中。

尝试运行

./manage thumbnail clear

【讨论】:

  • 我可以确认它可能是 memcached 的问题。拇指的路径已经在数据库中,但拇指文件不再在文件系统中。 ./manage thumbnail clear 对我没有帮助。必须手动清除数据库。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 2015-06-14
    • 1970-01-01
    • 2012-06-12
    • 2016-05-10
    • 2019-10-14
    • 2011-02-13
    • 2011-02-03
    • 2012-03-06
    相关资源
    最近更新 更多