我根据说明设置了sorl-thumbnail,但是当我尝试在我的应用中使用模板标签时,没有出现任何图像。
似乎网址无效,但目前尚不清楚需要哪些其他配置。
生成如下图像:
<img src="cache/e5/25/e5253a328b9130ecd7d820893f44b0e6.jpg" width="100" height="100">
“缓存/ ...”如何解析为图像请求?这些请求与我的应用程序有关,而不是与sorl-thumbnail相关:
[31/May/2011 07:13:05] "GET /myapp/cache/e5/25/cache/e5/25/cache/00/73/0073095ee4b968b45386ef3fec4f389c.jpg HTTP/1.1" 200 1004
以下是settings.py中的相关行:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
'mysite.myapp',
'sorl.thumbnail',
)
CACHES = {
# 'default': {
# 'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
# 'LOCATION': 'cache',
# }
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = ''
# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "http://foo.com/media/", "/media/".
ADMIN_MEDIA_PREFIX = '/media/'
这是我模板中的代码:
{% thumbnail auction.item.image "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
图像肯定上传(我检查了upload_to中指定的目录),当我使用文件系统缓存时,它们被存储在目录缓存/相对于我的应用程序中。我将其更改为使用memcache来查看是否有帮助。
答案 0 :(得分:6)
您需要正确配置MEDIA_URL。 ImageFile的"url" attribute基本上只是底层存储后端的传递。对于开箱即用的Django,upload_to path is appended to MEDIA_URL生成FileField的URL。
你有什么:'''cache / e5 / 25 / e5253a328b9130ecd7d820893f44b0e6.jpg'
你想要什么:'/ media /'+'cache / e5 / 25 / e5253a328b9130ecd7d820893f44b0e6.jpg'
注意:您需要确保将MEDIA_URL别名/映射到Django将文件上传到的任何目录(MEDIA_ROOT)。
-----编辑----
请参阅以下指向默认Django存储后端源的链接。
https://code.djangoproject.com/browser/django/tags/releases/1.3/django/core/files/storage.py#L154
https://code.djangoproject.com/browser/django/tags/releases/1.3/django/core/files/storage.py#L240