こんにちは、nishi_talk(@nishi_talk)です。
今回はPythonのフレームワークDjangoでサクッとサーバーを動かそうとしたら、「The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.」というエラーが出たときの対処方法をご紹介します。
Djangoのアプリを作成して、サーバーを動かそうとしたら、エラーが出ました。
$ python manage.py runserver Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7fe3e6f87bf8> Traceback (most recent call last): File "/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run self.check(display_num_errors=True) File "/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/core/management/base.py", line 410, in check raise SystemCheckError(msg) django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: ERRORS: ?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.
調べてみるとSTATICFILES_DIRSの設定がSTATIC_ROOTの設定と重複してるよーっ意味らしい。。。
では早速対処していきます。
STATICFILES_DIRSの設定を変更
今回は例としてアプリ名をmySiteという名前にしています。
mySiteにmySite/setting.pyを編集します。
$ vim setting.py ・ ・ ・ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, "static/") STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), ) ↓ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, "static/") #STATICFILES_DIRS = ( # os.path.join(BASE_DIR, "static"), #)
setting.pyの下の方に書かれているSTATICFILES_DIRS箇所をコメントアウトして保存。
再度サーバーを起動したら動きました。
$ python manage.py runserver