This is a Django app that provides helpers for serving static files.
For small projects, this isn't a big deal, because you can just keep the media somewhere your web server can find it. However, in bigger projects -- especially those comprised of multiple apps -- dealing with the multiple sets of static files provided by each application starts to get tricky.
staticfiles is for:
Collecting static files from each of your Django apps (and any other place you specify) into a single location that can easily be served in production.
The main website for django-staticfiles is github.com/jezdez/django-staticfiles where you can also file tickets.
django-staticfiles is now part of Django (since 1.3) as
The django-staticfiles 0.3.X series will only receive security and data los bug fixes after the release of django-staticfiles 1.0. Any Django 1.2.X project using django-staticfiles 0.3.X and lower should be upgraded to use either Django >= 1.3's staticfiles app or django-staticfiles >= 1.0 to profit from the new features and stability.
You may want to chose to use django-staticfiles instead of Django's own staticfiles app since any new feature (additionally to those backported from Django) will be released first in django-staticfiles.
Use your favorite Python packaging tool to install
staticfilesfrom PyPI, e.g.:
pip install django-staticfiles
You can also install the in-development version of django-staticfiles with
pip install django-staticfiles==dev.
INSTALLED_APPS = [ # ... "staticfiles", ]
STATIC_URLsetting to the URL that handles serving static files:
STATIC_URL = "/static/"
In development mode (when
DEBUG = True) the
runservercommand will automatically serve static files:
python manage.py runserver
Once you are ready to deploy all static files of your site in a central directory (
STATIC_ROOT) to be served by a real webserver (e.g. Apache, Cherokee, Lighttpd, Nginx etc.), use the
python manage.py collectstatic
See the webserver's documentation for descriptions how to setup serving the deployment directory (
(optional) In case you use Django's admin app, make sure the
ADMIN_MEDIA_PREFIXsetting is set correctly to a subpath of
ADMIN_MEDIA_PREFIX = STATIC_URL + "admin/"