django-staticfiles

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.

Note

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.

Installation

  • 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:

    INSTALLED_APPS = [
        # ...
        "staticfiles",
    ]
    
  • 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:

    ADMIN_MEDIA_PREFIX = STATIC_URL + "admin/"
    

Differences to django.contrib.staticfiles

Features of django-staticfiles which Django’s staticfiles doesn’t support:

  • Runs on Django 1.2.X.
  • STATICFILES_EXCLUDED_APPS settings – A sequence of dotted app paths that should be ignored when searching for static files.
  • STATICFILES_IGNORE_PATTERNS settings – A sequence of glob patterns of files and directories to ignore when running collectstatic.
  • Legacy ‘media’ dir file finder – a staticfiles finder that supports the location for static files that a lot of 3rd party apps support (staticfiles.finders.LegacyAppDirectoriesFinder).

See the Settings docs for more information.

Read the Docs v: latest
Versions
latest
1.1
1.0.1
1.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Downloads
PDF
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.