[Answer]-Django MEDIA_URL and MEDIA_ROOT issue with CSS

1👍

Static files should be placed in the ‘static’ directory; this is where Django will look. The ‘media’ directory is meant to hold user-uploaded files, which get copied over to the static directory when the django server runs.

Change your MEDIA_URL references to STATIC_URL

You shoudn’t have to use the URLConf to manage static files at all.

As for your Django settings, it’s not a good idea to hard code absolute paths in case they are changed (i.e. when pushed to a deployment server).

A better idea is to do something like this:

from os import path

PROJECT_ROOT = path.abspath(path.dirname(path.dirname(__file__)))

MEDIA_ROOT = path.join(PROJECT_ROOT, 'media/')

MEDIA_URL = ''

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    path.join(PROJECT_ROOT, 'static/'),
)

This will ensure that Django is using the correct absolute path regardless of where your project is on your system.

You can also enable the DefaultStoreFinder in STATICFILES_FINDERS although it shouldn’t be necessary.

Leave a comment