我在项目中使用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)
在设置中,我指定:
THUMBNAIL_ALIASES = {
'': {
'avatar': {'size': (50, 50), 'crop': True},
},
}
我使用模板过滤器:
<div class="image">
<img src="{{ MEDIA_URL }}{{ project.photo|thumbnail_url:'avatar'}}" class="img-responsive" alt="{{ project.name }}">
</div>
然而,过滤器似乎没有返回任何东西。是因为找不到网址吗?还是其他原因?谢谢你的时间!
答案 0 :(得分:5)
问题可能是两件事之一,要么运行wsgi应用程序的用户对生成缩略图的目录没有正确的权限(最有可能),或者Pillow未正确安装正确的支持。
在我的情况下修复权限是检查用户gunicorn运行的是什么,我检查了gunicorn conf文件并创建了user = www-data这是用户33,然后我将目录更改为存储缩略图的位置,上面的一个目录和使用户ID 33为所有者:
chown -R 33:2000 filer_public_thumbnails
现在重启您的应用程序。
另一个不太可能的问题是Pillow没有正确的图像支持。
1)卸载Pillow
sudo pip uninstall Pillow
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
(Centos的)
sudo yum install python-devel
sudo yum install libjpeg-devel
#Then..
sudo yum install gcc gcc-c++
sudo yum install zlib-devel
并重新安装Pillow
sudo pip install Pillow
立即查看您是否拥有合适的支持并重新启动应用服务器。
答案 1 :(得分:3)
这个问题有点陈旧,但我遇到了同样的问题(使用OS X Mavericks 10.9.2),我会把{{MEDIA_URL}}放在那里,但是第二部分不会出现。{MEDIA_URL}}所以我想我会回答这个问题(我在寻找答案时遇到过这个问题)。
首先要做的事情:问题评论中的用户 freylis 是对的。你做不需要
{{ MEDIA_URL }}
。
我做的第一件事就是修改我的settings.py:
THUMBNAIL_DEBUG = True
这给了我一些调试信息。现在这些信息有误导性,因为它告诉我第二部分正在创建的路径和文件并不存在......我可以看到它在服务器端做到了。
经过一番挖掘后,我了解到可能需要为我正在使用的图像类型安装库(在使用自制程序的命令行上):
brew install libjpeg
一旦我这样做,我卸载并重新安装枕头:
pip uninstall Pillow
pip install Pillow --upgrade
我相信&#34; - 升级&#34;将编译新的库供它使用(在本例中为libjpeg),而不是仅使用它在第一次安装之前的编译库。
一旦我这样做了,我就可以刷新我的网站并且图片开始出现了。