Unable to perform collectstatic

Question:

I am new to django ! When I use the command python manage.py collectstatic I get this error

django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path

But I can successfully run the server .

My static files declarations are :

STATIC_ROOT = ''

STATIC_URL = '/static/'


STATICFILES_DIRS = (

    ('assets', os.path.join(PROJECT_DIR, '../static')),
)

and debug is set to true

DEBUG = True

How can I fix this? Else am missing any installation packages ?

Asked By: user3383301

||

Answers:

You must have to give path in STATIC_ROOT in settings.py where all your static files are collected as for example:-

STATIC_ROOT = "app-root/repo/wsgi/static"

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    ('assets', 'app-root/repo/wsgi/openshift/static'),

    )
Answered By: Sheesh Mohsin

Try this,

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')

Look at https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATIC_ROOT

Answered By: dhana

I had to put STATIC_ROOT and STATIC_URL above the STATICFILES_DIRS declaration.

Answered By: ehacinom
STATIC_ROOT = "/var/www/YourSiteFolder/static/"
STATIC_URL = '/static/'

look at https://docs.djangoproject.com/en/1.11/howto/static-files/#deployment

Answered By: Raoof Arakkal

well had this error as well. I fixed:

STATIC_URL = '/static/'
if DEBUG:
   STATICFILES_DIRS = [
   os.path.join(BASE_DIR, 'static'),
   ]
else:
   STATIC_ROOT = os.path.join(BASE_DIR,'static')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Answered By: Sabuhi Shukurov

you can create ‘static’ folder in any subfolder and have required files in it.
In settings.py add the following lines of code:

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATIC_URL = '/static/'

After running
python manage.py collectstatic
a new static folder will be created in your parent App folder

Answered By: Mayur Raj
STATIC_ROOT = os.path.join(BASE_DIR, 'assest')
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'static')
]
Answered By: ChandimaJay

STATIC_URL = ‘/static/’

STATIC_ROOT = os.path.join(BASE_DIR,’static’)

This works for me

enter image description here

Answered By: Mohammed Jaseem Tp

if you want to load static files rather than admin panel files or getting errors while loading webpage static files like CSS js etc

I suggest you change the folder name of ‘static‘ to ‘staticfiles

and then add this code in your settings.py

STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘staticfiles’),
)

then after run python manage.py collectstatic

Then the problem will be fixed

enter image description here

Answered By: Mohammed Jaseem Tp