Как загрузить CSS в шаблоны Django? - PullRequest
4 голосов
/ 18 февраля 2012

У меня проблемы с загрузкой CSS для моего шаблона Django.

У меня есть следующие настройки:

STATIC_ROOT = ''
STATIC_URL = '/css/'
STATICFILES_DIRS = ("/css")
INSTALLED_APPS = (
    'django.contrib.staticfiles',
)

Нужно ли использовать как static_url, так и staticfiles_dirs?

urls.py is

urlpatterns = patterns('',
    (r'^$',homefun),
)

views.py is

def homefun(request):
    return render_to_response('home.html')

И родительский шаблон - base.html, который загружает CSS.

<link rel="stylesheet" type="text/css" href="/css/style.css" />

Ответы [ 4 ]

8 голосов
/ 18 февраля 2012

Ваше STATICFILES_DIRS = ("/css") на самом деле должно быть STATICFILES_DIRS = ("/path/to/your/css", ) (обратите внимание на конечную запятую - необходимо, потому что (eggs) оценивается как значение eggs, но конечная запятая вынуждает его вычислять как кортеж).

7 голосов
/ 18 февраля 2012

Вам необходимо использовать {{ STATIC_URL }} в качестве переменной в шаблонах, например:

<link rel="stylesheet" href="{{ STATIC_URL }}style.css">

Официальная документация по Django содержит хорошее объяснение о предоставлении статических файлов.

Вы должны установить STATIC_ROOT переменную.Использование STATICFILES_DIRS необязательно, по умолчанию поиск в Django в каталогах static всех ваших приложений.

1 голос
/ 18 февраля 2012

STATIC_URL - для URL-адреса вашего статического носителя (для которого веб-сервер запрашивает статический носитель для браузера), а STATICFILES_DIRS - список папок на вашем компьютере (где веб-сервер найдет файлы обслуживать). AFAIK последний должен использовать абсолютные пути, а не относительные, возможно, поэтому он не работает для вас.

0 голосов
/ 12 февраля 2016

Это решение сработало для меня.

Я преобразовываю код из python2.7 в python3.4 и не могу отобразить статические файлы после преобразования.

Я изменил script(src='#{STATIC_URL}js/libs/jquery-2.1.1.min.js') на script(src='{{STATIC_URL}}js/libs/jquery-2.1.1.min.js') и теперь все отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...