I'm using Django 1.7. When deploying my site to a Production server and running collectstatic, I get following error message:django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting
I use split settings; my production local.py contains:
STATIC_ROOT = '/home/username/projects/site/static/'and my base.py contains:
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'),
) 3 6 Answers
According to the docs, collectstatic will copy the files from various folders into STATIC_ROOT.
Therefore, you cannot use the STATIC_ROOT folder in STATICFILES_DIRS.
Solution: change STATIC_ROOT to e.g. STATIC_ROOT = '/home/username/projects/site/assets/'
I faced same error like this (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting. when i try to use compressor
Main problem is My settings.py file
STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
Remove or comment :
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
I know it is an old post but this solution has worked for me and might help someone else.
In settings.py:
if DEBUG: STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ] else: STATIC_ROOT = os.path.join(BASE_DIR, 'static') 1 The solution is that the STATIC_ROOT must not be set if you are running the Django development server:
import sys
if sys.argv[1] != 'runserver': STATIC_ROOT = os.path.join(BASE_DIR, "static")Tested with Django 2.1 in a Windows 10 development environment and in an Ubuntu 18.04 docker container on AWS in a production environment.
in settings.py set static root to virtual environment so that it collects the static files to folder static_in_env
STATIC_ROOT=os.path.join(VENV_PATH,'static_in_env/') saw this in Django 1.11 documentation
urlpatterns = [ # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)Once you make changes to the urls.py as shown above, it should work fine.
1