Python Django: You’re using the staticfiles app without having set the STATIC_ROOT setting

What is the production.py file? How do you import your settings?

Depending on how you got this error (serving django through a wsgi server or on the command line), check for manage.py or wsgi.py to see what is the name of the default settings file.

If you want to manuallly set the settings to use, use something like this:

./manage.py --settings=production

Where production is any python module.

Moreover, your settings file should not import anything django related. If you want to split your settings for different environments, use something like this.

A file settings/base.py

# All settings common to all environments
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')

Files like settings/local.py, settings/production.py

# Production settings
from settings.base import *
DEBUG = False
DATABASES = …

Leave a Comment