[Unmaintained] A Django app that provides helpers for serving static files, used in Django and Pinax.
Latest commit b1540da Jun 7, 2012 @jezdez jezdez Merge pull request #32 from pabluk/develop
Small typos fixes in docs
Failed to load latest commit information.
docs Merge pull request #32 from pabluk/develop Jun 7, 2012
requirements Switched to using Travis for CI tests. May 26, 2012
.gitignore Switched to using Travis for CI tests. May 26, 2012
LICENSE Updated year to 2012. Feb 11, 2012
MANIFEST.in Added all non-Python files in staticfiles.tests to package manifest. Jan 30, 2011
setup.py Updated trove classifier to stable. Feb 16, 2012



This is a Django app that provides helpers for serving static files.

Django developers mostly concern themselves with the dynamic parts of web applications -- the views and templates that render new for each request. But web applications have other parts: the static media files (images, CSS, Javascript, etc.) that are needed to render a complete web page.

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.

That's what 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 django.contrib.staticfiles.

The django-staticfiles 0.3.X series will only receive security and data loss 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 staticfiles from PyPI, e.g.:

    pip install django-staticfiles

    You can also install the in-development version of django-staticfiles with pip install django-staticfiles==dev.

  • Added "staticfiles" to your INSTALLED_APPS setting:

        # ...
  • Set your STATIC_URL setting to the URL that handles serving static files:

    STATIC_URL = "/static/"
  • In development mode (when DEBUG = True) the runserver command 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 collectstatic management command:

    python manage.py collectstatic

    See the webserver's documentation for descriptions how to setup serving the deployment directory (STATIC_ROOT).

  • (optional) In case you use Django's admin app, make sure the ADMIN_MEDIA_PREFIX setting is set correctly to a subpath of STATIC_URL: