django-sass-processor
というパッケージを使うっぽい。
目次
django-sass-processorをインストールする
pip install libsass django-compressor django-sass-processor
django-sass-processor
のページでこれを実行するように書いたあったので、
libsass
とdjango-compressor
も必要みたい。
SCSSを使う設定
settings.pyINSTALLED_APPS
にsass_processor
を追加する
INSTALLED_APPS = [
...
'sass_processor',
...
]
STATICFILES_FINDERS
を追加する
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'sass_processor.finders.CssFinder',
]
CSSはSTATIC_ROOT
に出力されますがSASS_PROCESSOR_ROOT
で指定することもできる
出力をmin化する場合は、SASS_OUTPUT_STYLE = 'compressed'
をつける
SASS_PROCESSOR_ROOT = os.path.join(BASE_DIR, 'static')
SASS_OUTPUT_STYLE = 'compressed'
SCSSを使う
先頭でロードして
{% load sass_tags %}
cssみたいに読み込む
<link rel="stylesheet" href="{% sass_src 'css/hoge.scss' %}" />
SCSSをコンパイルする
自動コンパイル
SASS_PROCESSOR_ENABLED = True
開発段階では、SASS_PROCESSOR_ENABLED
をTrue
にしとくと自動でコンパイルされます
コンパイルする
python manage.py compilescss
本番環境では、SASS_PROCESSOR_ENABLED
をFalse
にして、
python manage.py compilescss
をすると
SASS_PROCESSOR_ROOT
ない場合はSTATIC_ROOT
にコンパイルされます。
Staticファイルを移動する
Djangoではstaticファイルはまとめて、公開フォルダに置いとく感じにするので、collectstatic
であつめます
python manage.py collectstatic