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...
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'),
)
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')
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.