Проблема с 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.