Процессор 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).

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