sorl-thumbnail не создает миниатюры
У меня есть некоторые трудности с sorl-thumbnail
,
Мой шаблон выглядит следующим образом:
{% thumbnail project.image "75x75" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% empty %}
<p>:(</p>
{% endthumbnail %}
На моей отрисованной веб-странице я получаю следующий путь для миниатюры:
<img src="/media/cache/ff/29/ff299c50543aa807b0fbd28faf271e63.jpg" width="75" height="75">
Теперь все это имеет смысл, потому что мой MEDIA_URL
устанавливается как /media/
который отображается в моем Apache httpd.conf
в локальную папку на моем сервере.
Проблема в том, что этот путь не существует на сервере, поэтому изображение отображается как неработающая ссылка.
Стоит отметить, что я использую пользовательский объект хранения, хотя это не должно влиять на вещи, так как они передаются прямо через sorl.thumbnail ImageField
, Также я использую memcached
кеш-сервер работает на сервере.
Раздражает то, что я не получаю никаких ошибок, хотя у меня есть THUMBNAIL_DEBUG
а также DEBUG
так что трудно понять, что происходит не так. Я вполне уверен, что он не может записать файлы миниатюр на диск, но возвращается как успешный, потому что {% empty %}
Оператор не срабатывает, и соответствующие файлы кэша не отображаются на сервере. Я не знаю почему, хотя из-за отсутствия какой-либо ошибки.
Я застрял на этом этапе, поэтому любая помощь будет оценена.
РЕДАКТИРОВАТЬ:
Я отказался от sorl и теперь использую easy-thumbnails, который работает нормально.
2 ответа
У меня была очень похожая проблема с вами, я не могу использовать easy-thumbnails
потому что мне нужно создавать эскизы из внешнего источника. Я понял, что при подготовке используется та же база данных, что и при разработке, поэтому после рендеринга изображений в процессе разработки они сохраняют кэшированные имена файлов в базе данных, а когда вы пытаетесь выполнить рендеринг при подготовке, он выбирает имена файлов из той же базы данных. базы данных, но, очевидно, файлы не находятся на стадии подготовки.
Попробуйте запустить
./manage thumbnail clear
Сорл не создавал для нас миниатюры, потому что мы использовали неправильно закодированные URL. Они будут содержать "+" вместо "" или "%20" для пробелов, а sorl перекодирует их в "%2B" (кодируется "+"). Полученная ошибка URL была подавлена, а создание миниатюры было проигнорировано. Может быть, это помогает кому-то с этой проблемой.