Скомпилируйте файлы SASS / SCSS на Heroku в приложении Django

#django #heroku #sass #static-files #django-compressor

#django #heroku #sass #статические файлы #django-компрессор

Вопрос:

Я получаю сообщение об ошибке, когда DEBUG установлено значение False или unset в Heroku, в приложении Django, когда я активирую журналы.

Ошибка ValueError: отсутствует запись манифеста staticfiles для ‘css /sass/home.css’

Кажется, что мои файлы SCSS не компилируются при развертывании на Heroku, в то время как они автоматически компилируются локально с помощью django-sass-processor

Ответ №1:

Похоже, что heroku пропускает часть компиляции файлов scss и переходит непосредственно к сбору статики, поэтому:

1-м шагом было отключить сбор статических файлов:

 heroku config:set DISABLE_COLLECTSTATIC=1
 

2-й шаг — запустить процесс посткомпиляции:

 heroku run python manage.py compressscss
 

а потом

 heroku run python manage.py collectstatic --noinput 
 

Это может быть запущено автоматически путем переопределения пакета сборки python после компиляции, показанного здесь в this post Ссылка на как создать файл postcompile

Где вы создаете файл bin/post_compile в корневом каталоге приложения с помощью:

 #!/usr/bin/env bash

cd "$1" || exit 1
python manage.py compilescss --traceback
python manage.py collectstatic --noinput --traceback
 

И нажмите на Heroku, чтобы применить изменения.