Я пытаюсь использовать sorl-thumbnail в своих шаблонах, но мне не удалось успешно сгенерировать миниатюры в правильном каталоге / cache, который использует sorl-thumbnail для получения миниатюр.
ItКажется, что эта проблема уже случалась с несколькими людьми раньше, однако предыдущие решения не помогли мне.Я запустил ./manage.py migrate
и убедился, что я использую sorl.thumbnail.ImageField вместо django.db.models.ImageField по умолчанию в моем models.py, и я попытался использовать ./manage.py thumbnail cleanup
и ./manage.py thumbnail clear
.Я также читал, что memcached может мешать вещам, но даже после того, как все упоминания о memcached закомментированы, я не могу заставить работать пиктограммы sorl.
Для справки, я запускаю свой проект на Ubuntu18.04.2 сервер apache2, размещенный на сервере DigitalOcean.
html:
{% for obj in object_list %}
...
{% thumbnail obj.image "75x75" as im %}
<img class = "artwork" src="{{im.url }}"/>
{% endthumbnail %}
...
{% endfor %}
settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sorl.thumbnail',
'posts',
'login',
]
...
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "/home/arthouse/workspace/code/side_proj/assets/")
]
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "/home/arthouse/workspace/code/side_proj/static_cdn/")
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "/media_cdn")
models.py:
from sorl.thumbnail import ImageField
class Post(models.Model):
image = ImageField(upload_to=upload_location,
null=True,
blank=True,
width_field="width_field",
height_field="height_field")
Я установил THUMBNAIL_DEBUG=True
, но из этого ничего не вышло.Я вижу, что миниатюры создаются (например: media / cache / 6d / 13 / 6d13206b5207bf2b6234295b749f1419.jpg), но в моем MEDIA_ROOT никогда не создается каталог / cache, который приводит к ошибке 404.
I 'Я с удовольствием поделюсь большим количеством фрагментов кода, если это поможет!