Процессор Django SASS не обновляет файлы CSS в продакшене
Я использую django-sass-processor (https://github.com/jrief/django-sass-processor) для генерации .css из .scss файлов. В продакшене css-файлы были сгенерированы на лету, основываясь на дате изменения scss-файла (как я понял из документации). Однако эта генерация файлов "на лету" внезапно перестала работать. Я переместил папку static в другое место, поэтому подозреваю, что проблема в этом, но мои обычные статические операции (collectstatic) работают просто отлично - дело только в генерации css файлов.
Вот соответствующие переменные из моего файла settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'sass_processor',
....
]
STATIC_ROOT = '/mnt/hd5/static/'
STATIC_URL = '/static/'
SASS_PROCESSOR_ROOT = '/mnt/hd5/static/css/'
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'sass_processor.finders.CssFinder',
]
Следующий файл находится в /mnt/hd5/static/css:
stylesheet.scss
Если я смотрю на последний filedate, то это действительно последняя версия, измененная более недавно, чем .css файлы. Когда я запускаю collectstatic (не уверен, что это вообще нужно?), он не обнаруживает никаких изменений.
Есть ли очевидная проблема, которую можно увидеть выше? Или, наоборот, есть ли способ записать/просмотреть любую ошибку, возникающую в процессе?
STATIC_ROOT - это место, где Django хранит собираемые статические файлы для обслуживания - это не место, где Django (или django-sass-processor`) будет искать исходные файлы.
Подобным образом SASS_PROCESSOR_ROOT - это место, где процессор будет хранить сгенерированные CSS файлы - а не место, где он будет искать исходные SCSS файлы.
Файл, который вы хотите, чтобы процессор искал и обрабатывал, должен находиться в одном из каталогов, в котором будет искать STATICFILES_FINDERS.
Итак, если у вас есть приложение с названием myapp, то ваши исходные файлы должны находиться по адресу myapp/static/css/stylesheet.scss - процессор найдет их здесь, а сгенерированный CSS-файл будет храниться в директории, заданной как SASS_PROCESSOR_ROOT (именно туда смотрит AppDirectoriesFinder).
Альтернативно, если вы предпочитаете не хранить исходные файлы внутри определенного приложения, процессор также будет искать в любом каталоге, который вы добавили в настройку STATICFILES_DIRS (именно туда смотрит FileSystemFinder).