Django:sorl-thumbnail

时间:2011-12-10 09:09:54

标签: django sorl-thumbnail

这是我的代码

{% thumbnail  ham.thumbnail_url "50x20" crop="center" as im %}
   <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}    

这就是img src输出的样子

cache/81/a8/81a884b2bce95dfe60e7397ea15d10f2.jpg

即使是来自docs

的示例
 {% thumbnail "http://www.aino.se/media/i/logo.png" "40x40" crop="80% top" as im %}
 <img src="{{ im.url }}">
 {% endthumbnail %}

怎么了?

更新

{% thumbnail  ham.thumbnail_url "220x120" crop="center" as foo %}
<img src="{{MEDIA_ROOT}}{{ foo.url }}" width="{{ foo.width }}" height="{{ foo.height }}">
{% endthumbnail %}

现在我在'media'目录中有一个名为'cache'的目录,其中包含所有图像,生成的代码是

 <img width="220" height="120" src="/media/cache/c6/5d/c65d3cd46c4ef6154c788526bfa3447f.jpg">

这是我的设置

 MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
 MEDIA_URL = '/media/'
 STATIC_URL = '/static/'

但我看不到屏幕上的图片==未能加载给定的网址(萤火虫)

使其工作的一种可能方法是在静态目录中自动生成缓存目录。如果我将缓存目录复制到静态目录并将设置更改为

,则对我有用
MEDIA_URL = ''
<img src="{{STATIC_URL}}{{ foo.url }}" width="{{ foo.width }}" height="{{ foo.height }}">

2 个答案:

答案 0 :(得分:1)

这是sorl-thumbnail命名文件的标准方法。通过调用缩略图标记的参数调整文件大小。结果是一个看起来像cache / 81 / a8 / 81a884b2bce95dfe60e7397ea15d10f2.jpg的网址。如果您没有看到任何内容,可能需要查看STATIC_URL设置。

许多网站都有静态网址,因此您的图片src将显示为

http://static.example.com/cache/81/a8/81a884b2bce95dfe60e7397ea15d10f2.jpg

http://example.com/media/cache/81/a8/81a884b2bce95dfe60e7397ea15d10f2.jpg

答案 1 :(得分:1)

更改媒体根目录:MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')

在LOCAL上这样的事情:

MEDIA_ROOT = /home/user/project/app/media/

MEDIA_URL = /site_media/

对于制作我做了类似的事情:

MEDIA_ROOT = '/home/user/webapps/media/'

MEDIA_URL = 'http://domain.com/site_media/'

当我切换到新的sorl时,我遇到了问题,但现在一切都适合我。希望这可以帮助。