С момента, когда я определил свой MEDIA_ROOT
в моих настройках.py. Я не смог получить эскиз сорла для создания папки кэша с изображениями. До этого я не устанавливал MEDIA_ROOT, и он работал нормально.Невозможно получить sorl-thumbnail для работы с MEDIA_ROOT set
Обратите внимание, что я тестирую 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.
Что мне здесь не хватает?