Статические файлы в Django 1.5 и сервер разработки

В качестве памятки/почти перевода

Статические файлы в Django (CSS, JS, картинки...) используются, например, для шаблонов. Файлы пользователей должны быть отделены от staticfiles (для них есть настройки media).

При исползовании сервера разработки (python manage.py runserver) в работе с django.contrib.staticfiles появляется несколько нюансов. Настройка staticfiles в Django 1.5 подробно описана в документации на английском и когда-нибудь будет на русском. Здесь же для шпаргалки оставлю вкратце и по пунктам.


1. Настройки проекта и каталога со статическими файлами


STATIC_ROOT не должен входить в STATICFILES_DIRS! Точнее, в каталог STATIC_ROOT бесполезно класть css и прочие файлы, добавлять их надо или в подкаталог static/ каталога приложения, или в каталог, указанный в STATICFILES_DIRS (должен быть указан полный путь). Также не забываем заполнить STATIC_URL (НЕ полный ULR, а '/static/') и проверить, входит ли приложение django.contrib.staticfiles в INSTALLED_APPS.


settings.py
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    '/var/django/static/',
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
)

INSTALLED_APPS = (
     'django.contrib.staticfiles',
)

И кидаем в '/var/django/static/', например, bootstrap.min.css.

2. Настройка привязок URL

Просто скопирую из официальной доки:
urls.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# ... здесь остальные настройки привязок URL ...

urlpatterns += staticfiles_urlpatterns()


3. Настройка шаблона


{% load staticfiles %}

<link href="{% static "bootstrap.min.css" %}" rel="stylesheet">

4. Все работает :)

UPD:

Как показала практика, нужно обращать внимание на кавычки в шаблоне (могут сбиться при копировании)

Комментариев нет:

Отправить комментарий