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: it collects static files from each of your applications (and any other places 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.
Warning
django-staticfiles was added to Django 1.3 as a contrib app.
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’s staticfiles app or django-staticfiles>=1.0 to profit from the feature parity.
Since any new feature (including those backported from Django’s staticfiles app) will be added in releases >= 1.0.X of this app, you may want to chose to use it instead of Django’s own staticfiles app.
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).