Home > Mobile >  Why Django can't find static folder in BASE_DIR?
Why Django can't find static folder in BASE_DIR?

Time:12-01

I have these directories:

└── MY_FOLDER
    ├── MY_PROJECT
    │   └── settings.py
    │      
    ├── MY_APP
    ├── STATIC
    │   └── style.css
    ├── MEDIA
    └── manage.py

In the settings.py I've indicated:

BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = 'static/'
STATICFILES_DIR = (os.path.join(BASE_DIR,'static'))

When I

print(STATICFILES_DIR)

I get a path: MY_FOLDER/STATIC - what is exactly I wanted.

But Django don't see any css there, in that folder.

I tried to put my css to MY_APP/STATIC and it started to work correctly. But I want to have it not in MY_APP but in BASE_DIR/STATIC. How to do it?

Or if it is impossible, how to make a correct path for STATICFILES_DIR to let it search my statics in all apps I'll add in the future. Not only in one app by doing this:

STATICFILES_DIR = (os.path.join(BASE_DIR,'MY_APP','static'))

Thanks.

CodePudding user response:

Always look for the documentation, you are naming the directive wrong and it also should be a list.

STATICFILES_DIRS = [
    BASE_DIR / "static",
]

CodePudding user response:

Try this:

STATIC_URL = '/static/'

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

Note: your static folder must be lowercase and ensure that static folder must be inside project root not inside an app

  • Related