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 yourINSTALLED_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
) therunserver
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 thecollectstatic
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 ofSTATIC_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 runningcollectstatic
.- 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.
Contents¶
- Management Commands
- Helpers
- Settings
- Changelog
- v1.3 (2012-XX-XX)
- v1.2.1 (2012-02-16)
- v1.2 (2012-02-12)
- v1.1.2 (2011-08-25)
- v1.1.1 (2011-08-22)
- v1.1 (2011-08-18)
- v1.0.1 (2011-03-28)
- v1.0 (2011-03-23)
- v0.3.4 (2010-12-25)
- v0.3.3 (2010-12-23)
- v0.3.2 (2010-08-27)
- v0.3.1 (2010-08-21)
- v0.3.0 (2010-08-18)
- v0.2.0 (2009-11-25)
- v0.1.2 (2009-09-02)
- v0.1.1 (2009-09-02)
- v0.1.0 (2009-09-02)