0

这是我的代码

{% 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

即使使用文档中的这个示例

 {% 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 %}

现在我在“媒体”目录中有一个名为“缓存”的目录,其中包含所有图像,生成的代码是

 <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/'

但我在屏幕上看不到图像 == 无法加载给定的 url(firebug)

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

MEDIA_URL = ''
<img src="{{STATIC_URL}}{{ foo.url }}" width="{{ foo.width }}" height="{{ foo.height }}">
4

2 回答 2

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 时,我遇到了这个问题,但现在一切都对我有用。希望这可以帮助。

于 2011-12-22T01:33:12.770 回答
1

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

许多网站都有一个静态网址,这样您的图片 src 将显示为

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

或者

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

于 2011-12-10T10:53:12.693 回答