Статические файлы в Django

статические файлы в Django

Статические файлы в Django.

Для того, чтобы справляться со статическими файлами, программной инфраструктуре Django (да и любому веб-серверу) нужно знать две вещи:

1. Когда URL-запрос предназначен для статического файла, а не для некоего HTML, который будет роздан через функцию представления.
2. Где найти статический файл, который хочет пользователь.

Другими словами, статические файлы являются результатом преобразования URL-адресов в имена дисковых файлов. В отношении первого пункта Django позволяет нам определить префикс URL-адреса, говорящий, что любой URL, который начинается с этого префикса, нужно рассматривать как запрос на статические файлы. По умолчанию таким префиксом является /static/. Он определен в settings.py:

Для того, чтобы справляться со статическими файлами, программной инфраструктуре Django (да и любому веб-серверу) нужно знать две вещи:

1. Когда URL-запрос предназначен для статического файла, а не для некоего HTML, который будет роздан через функцию представления.
2. Где найти статический файл, который хочет пользователь.

Другими словами, статические файлы являются результатом преобразования URL-адресов в имена дисковых файлов. В отношении первого пункта Django позволяет нам определить префикс URL-адреса, говорящий, что любой URL, который начинается с этого префикса, нужно рассматривать как запрос на статические файлы. По умолчанию таким префиксом является /static/. Он определен в settings.py: superlists/settings.py

[…]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/dev/howto/static-files/
STATIC_URL = ‘/static/’

Все остальные части настроек, которые мы добавим в этот раздел, касаются второго пункта: нахождение фактических статических файлов на диске.
С учетом того, что мы используем сервер разработки Django (manage. py runserver), можно опираться на Django, чтобы та волшебным образом находила статические файлы за нас — Django просто будет заглядывать в каждую подпапку одного из наших приложений с именем static.

Теперь вы понимаете, почему мы помещаем все статические файлы платформы Bootstrap в lists/static. Итак, почему же они в данный момент не работают? Потому что мы не используем префикс URL-адреса /static/. Взгляните еще раз на ссылку на CSS в base.html:

Чтобы заставить это работать, ее нужно изменить на: lists/templates/base.html

Когда команда runserver видит запрос, она знает, что он предназначен для статического файла, потому что запрос начинается с префикса /static/. И тогда команда пытается найти файл с именем bootstrap/css/ bootstrap.min.css, заглядывая во все папки приложений в поисках под­папок с именем static, и она найдет его в lists/static/bootstrap/css/bootstrap. min.css.

Если вы посмотрите вручную, то увидите, что все происходит как на рисунке

статические файлы в Django
Если вы решили приступить к разработке и освоению Python – вам стоит обратить внимание на пакет управления виртуальным окружением Pipenv. Руководство по pipenv поможет разобраться в тонкостях работы с данным инструментом. Желаем вам успехов в освоении новых инструментов, и приобретении новых навыков!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *