I\'m moving to Django 1.3 and find this separation of media and static files a bit confusing. Here is how default settings.py
looks like:
# Abso
As Uku Loskit said, static files are for things like your applications' css files, javascript files, images, etc. Media files are typically user or admin uploadable files.
Normally you will want MEDIA_ROOT
and STATIC_ROOT
to be separate directories. Keep in mind that STATIC_ROOT
is where the management command collectstatic
will place all the static files it finds. In production, you then configure your webserver to serve the files out of STATIC_ROOT
when given a request that starts with STATIC_URL
. If you are using the Django devserver for development, it will automatically serve static files.
The staticfiles application thus disentangles user uploaded media from application media, thus making deployment, backups, and version control easier. Prior to the staticfiles app, it was common for developers to have the media files mixed in with static application assets.
The 1.3 docs for staticfiles have been steadily improving; for more details, look at the how-to.
Static files are meant for javascript/images etc, but media files are for user-uploaded content.