こんにちは、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