Collecting staticfiles throws ImproperlyConfigured

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/'

1

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")]

3

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like