从我在 settings.py 中定义我的那一刻起MEDIA_ROOT
,我无法让 sorl-thumbnail 生成带有图像的缓存文件夹。在此之前,我没有设置 MEDIA_ROOT 并且它工作得很好。
请注意,我正在使用 DEBUG=True 进行测试。
这是我的设置:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = True
TEMPLATE_DEBUG = DEBUG
INSTALLED_APPS = (
'django.contrib.sites',
'grappelli',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'djangobower',
'pipeline',
'sorl.thumbnail',
'django_countries',
'allauth',
'allauth.account',
'allauth.socialaccount',
# Local apps
...
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
THUMBNAIL_DEBUG = DEBUG
THUMBNAIL_PREFIX = 'cache/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'pipeline.finders.PipelineFinder',
)
# TODO : use redis in prod
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'cache',
}
}
我的 home.html 文件包含以下内容:
{% extends 'base.html' %}
{% load static i18n thumbnail %}
{% static 'main/img/business_man_in_the_mirror.jpg' as business_man_in_the_mirror %}
{{ business_man_in_the_mirror }}
{% thumbnail business_man_in_the_mirror|slice:"1:" "x300" as im %}
{{ im.url }}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"
alt="{% trans "Homme d'affaire se regardant dans le miroir" %}"
class="center-block img-responsive">
{% endthumbnail %}
{{ business_man_in_the_mirror }} 打印“/static/main/img/business_man_in_the_mirror.jpg”。
{{ im.url }} 打印“/media/cache/d0/38/d038a3e64b2c7d070088e368ee881027.jpg”
到目前为止,一切都很好。但是 MEDIA_ROOT 中的缓存文件夹永远不会被创建。MEDIA_ROOT 甚至有 777。我没有看到任何错误./manage.py runserver -v 3
。所以我的网页中缺少图像。
runserver 日志显示以下内容:
[10/Aug/2015 18:47:47]"GET /media/cache/d0/38/d038a3e64b2c7d070088e368ee881027.jpg HTTP/1.1" 404 2870
http://localhost:8000/static/main/img/business_man_in_the_mirror.jpg确实向我展示了图像。
我试过了./manage.py thumbnail cleanup
,./manage.py thumbnail clear
但没有效果。我还尝试删除数据库中的kvstore表和缓存表,没有改变。我在缓存中有 5 行,但在 kvstore 表中没有任何内容。
我在这里想念什么?