Django-compressor & S3 Boto: статические файлы не сжаты - PullRequest
0 голосов
/ 01 октября 2018

Ошибка

Статические файлы сохраняются в S3 - однако они не сжимаются.

Мой код

HTML

{% compress css %}
<link href="{{ STATIC_URL }}css/project.css" rel="stylesheet" type="text/css" charset="utf-8">
{% endcompress %}

Производственные настройки

COMPRESS_ENABLED = True
STATICFILES_STORAGE = '<myproject>.storage.CachedS3Boto3Storage'
COMPRESS_STORAGE = STATICFILES_STORAGE
COMPRESS_URL = STATIC_URL
COMPRESS_FILTERS = {
    'css': ['compressor.filters.css_default.CssAbsoluteFilter'],
    'js': ['compressor.filters.jsmin.JSMinFilter']
}

CachedS3BotoStorage

from django.core.files.storage import get_storage_class
from storages.backends.s3boto3 import S3Boto3Storage


class CachedS3Boto3Storage(S3Boto3Storage):
    """
    S3 storage backend that saves the files locally, too.
    """
    def __init__(self, *args, **kwargs):
        super(CachedS3Boto3Storage, self).__init__(*args, **kwargs)
        self.local_storage = get_storage_class(
            "compressor.storage.CompressorFileStorage")()

    def save(self, name, content):
        self.local_storage._save(name, content)
        super(CachedS3Boto3Storage, self).save(name, self.local_storage._open(name))
        return name

Что рекомендуется

документы показывают, что у вас получится что-то вроде этого -

STATIC_ROOT = '/path/to/staticfiles'
COMPRESS_ROOT = STATIC_ROOT
STATICFILES_STORAGE = 'mysite.storage.CachedS3BotoStorage'
COMPRESS_STORAGE = STATICFILES_STORAGE
STATIC_URL = 'https://compressor-test.s3.amazonaws.com/'
COMPRESS_URL = STATIC_URL

Что я могу подтвердить

  • Мой COMPRESS_ROOT & STATIC_ROOT одинаковы: '/app/staticfiles'
  • STATICFILES_STORAGE указывает на <myproject>.storage.CachedS3BotoStorage
  • STATIC_URL равно 'https://s3.amazonaws.com/<my_prod-bucket>/static/'
  • COMPRESS_URL == STATIC_URL

Идеи?

Есть идеи, почему компрессор не сжимает?

РЕДАКТИРОВАТЬ: эта реализация работает с Django Debug Toolbar, поэтому похоже на использование {{ STATIC_URL }} в статических путях к файлам"работает", но в то же время настройки сбивают панель инструментов отладки.

...