Django Easy Thumbnail无效

Wei*_* Xu 4 python django easy-thumbnails

我正在项目中使用django easy_thumbnail,我一步一步地按照说明操作.但事实证明,网址不会被退回.

包含imageField的模型是:

class Project(models.Model):
   name = models.CharField(max_length=100)
   description = models.CharField(max_length=2000)
   startDate = models.DateField(auto_now_add=True)
   photo = models.ImageField(upload_to="projectimg/", null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

在设置中,我指定:

    THUMBNAIL_ALIASES = {
    '': {
        'avatar': {'size': (50, 50), 'crop': True},
    },
    }
Run Code Online (Sandbox Code Playgroud)

我使用模板过滤器:

<div class="image">
    <img src="{{ MEDIA_URL }}{{ project.photo|thumbnail_url:'avatar'}}" class="img-responsive" alt="{{ project.name }}">
</div>
Run Code Online (Sandbox Code Playgroud)

但是,过滤器似乎没有返回任何东西.是因为找不到网址吗?还是其他原因?谢谢你的时间!

rad*_*tek 5

问题可能是两件事之一,要么运行wsgi应用程序的用户对生成缩略图的目录没有正确的权限(最有可能),要么Pillow没有正确安装并提供正确的支持.

在我的情况下修复权限是检查用户gunicorn运行的是什么,我检查了gunicorn conf文件并创建了user = www-data这是用户33,然后我将目录更改为存储缩略图的位置,上面的一个目录并创建用户ID 33主人:

chown -R 33:2000 filer_public_thumbnails
Run Code Online (Sandbox Code Playgroud)

现在重启你的应用程序

另一个不太可能的问题是Pillow没有正确的图像支持.

1)卸载枕头

sudo pip uninstall Pillow
Run Code Online (Sandbox Code Playgroud)

2)安装所有必需的库(Ubuntu)

 sudo apt-get install libtiff4-dev libjpeg8-dev zlib1g-dev \
 libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk
Run Code Online (Sandbox Code Playgroud)

(Centos的)

sudo yum install python-devel
sudo yum install libjpeg-devel
#Then..
sudo yum install gcc gcc-c++ 
sudo yum install zlib-devel
Run Code Online (Sandbox Code Playgroud)

并重新安装枕头

sudo pip install Pillow
Run Code Online (Sandbox Code Playgroud)

看看您现在是否拥有合适的支持并重新启动应用服务器.