django - sorl thumbnail + django 生产中的问题

标签 django permissions sorl-thumbnail

我在 Django 中使用 sorl 缩略图。在我的本地设置上它工作正常,但在生产中没有制作缩略图。

我的代码如下所示:

{% load thumbnail %}
{% thumbnail up.image "32x32" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% empty %}
<img src="{{ MEDIA_URL }}/images/missing_small.png" alt="" title="" />
{% endthumbnail %}

我启用了日志记录,跟踪如下所示:

Traceback (most recent call last):

[...]

File "/usr/local/lib/python2.6/dist-packages/PIL/ImageFile.py", line
215, in load
raise_ioerror(e)

File "/usr/local/lib/python2.6/dist-packages/PIL/ImageFile.py", line
52, in raise_ioerror
raise IOError(message + " when reading image file")

IOError: broken data stream when reading image file

该错误不是很有帮助,因为该文件存在并且所有人都可以读取。我不确定如何获得更明确的错误,或者尝试修复什么。

然后更令人困惑的是它使用 manage.py shell

In [1]: from sorl.thumbnail import get_thumbnail

In [2]: im = get_thumbnail('/myproject/static/images/user_profiles/1/11-20-2010-2_5.jpg',
'32x32', crop='center' )

In [3]: im
Out[3]: <sorl.thumbnail.images.ImageFile object at 0x29fe090>

In [4]: im.url
Out[4]: 'http://example.com/cache/ff/31/ff318b4a995ff345d1d48e79b67ec62b.jpg'

它制作了缩略图,只是不会通过模板代码制作一个。

有人吗?

最佳答案

像我这样懒惰的人的解决方案是在设置文件中尝试另一个 THUMBNAIL_ENGINE。

我也遇到了同样的问题。由于它显然是由图像库的问题引起的,就我而言,我决定简单地使用不同的图像库 - 它有效。目前有 3 个可能的图像库:PIL(默认)、Pgmagick 和 ImageMagick/GraphicsMagick。详细解释here .

当然,必须在服务器上安装备用库之一。否则,此解决方案将不起作用。

关于django - sorl thumbnail + django 生产中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312344/

相关文章:

Django Rest Framework、ModelSerializers 和自定义字段验证

django - 如何在 satchmo 中使用多个运费?

https 设置后的 Django 站点 ERR_SSL_PROTOCOL_ERROR

docker - Docker 容器如何写入具有通过组成员资格授予的权限的挂载目录?

file - 为什么setfacl在Docker容器中不起作用?

django - 如何使用 sorl-thumbnail 调整源大小?

django - 如何在 Django Guardian 中为用户定义默认权限?

Java/Tomcat 没有足够的权限执行 'java'

Django 简单缩略图与 sorl 缩略图的区别

python - django 和 sorl.thumbnail 模型字段的问题