Проблема с Django-compressor на моем тестовом примере для Django Views

Context

Я работаю над проектом Django и недавно почувствовал необходимость протестировать свои представления, чтобы убедиться в их правильном функционировании. Для этого я решил настроить модульные и приемочные тесты с помощью Behave. Однако при выполнении тестов я столкнулся с проблемой, связанной с Django Compressor, библиотекой, которую я использую для сжатия статических файлов в своем проекте.

Проблема

Каждый раз, когда я пытаюсь выполнить свои тесты, связанные с представлениями, возникает эта ошибка :

raise OfflineGenerationError(
compressor.exceptions.OfflineGenerationError: You have offline compression enabled but key "3e7f5ee33c06d182d3e3f00854139e79ed028f324df0775d235088d452390285" is missing from offline manifest. You may need to run "python manage.py compress". Here is the original content:


        <link href="/static/themes/snexi/custom.scss" rel="stylesheet" type="text/x-scss" media="screen"/>
        <link href="/static/css/global.css" rel="stylesheet" type="text/x-scss" media="screen"/>

Когда я пытаюсь локально выполнить команду python manage.py compress, возникает ошибка :

CommandError: An error occurred during rendering customer/agencies/send_links/list.html: [Errno 21] Is a directory: '/home/rbouard/dev/snexi_v2/src/snexi/static'

Это не специфично для одного шаблона.

Конфигурация

Вот обзор моей текущей конфигурации:

  • Django версии 5.0.1
  • Django Compressor версии 4.4

Это мои настройки Django относительно статических файлов и компрессора :

# Static files
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS: List[str] = [os.path.join(BASE_DIR, 'snexi', 'static'), ]

SASS_PROCESSOR_ROOT = '%s/static/' % (BASE_DIR,)  # FIXME : à bouger

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
)

COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
COMPRESS_URL = STATIC_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_OUTPUT_DIR = 'CACHE'

# List of CSS preprocessors to use
COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'django_libsass.SassCompiler'),
)
COMPRESS_FILTERS = {
    'css': ['compressor.filters.css_default.CssAbsoluteFilter'],
    'js': ['compressor.filters.jsmin.JSMinFilter']
}

Заранее благодарю за помощь!

Я просто хочу, чтобы команда для сжатия работала локально, и мой тест прошел, и я видел, что ни у кого нет такой же проблемы на StackOverflow.

Вернуться на верх