Sorl-thumbnail не генерирует миниатюры в папке «/ cache» - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь использовать 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 'Я с удовольствием поделюсь большим количеством фрагментов кода, если это поможет!

1 Ответ

0 голосов
/ 10 июля 2019

Попробуйте установить настройку Solr Thumbnail, которая определяет, куда он загружает файлы:

THUMBNAIL_PREFIX = 'CACHE /'

Затем запустите collectstatic --noinput как обычно. В Digital Ocean вы должны увидеть новую папку с именем CACHE, созданную в вашем ведре.

Ошибка 404 звучит так, как будто вы забыли следующие две настройки:

AWS_S3_ENDPOINT_URL - определяет, как статический тег переписывает URL-адрес img, чтобы он указывал на его местоположение в корзине.

AWS_S3_CUSTOM_DOMAIN - То же, что и выше, если вы используете пользовательский домен.

...