Откуда начинается отсчёт при указывании STATIC_URL в settings.py в django?

Имеется проект со следующей иерархией:

-myproject
--myapp1
--myapp2
--myapp3
--projectapp
---settings.py
---wsgi.py
---urls.py
--static_content
---media
---static
----css
--templates
---*.html


html, лежащий в templates содержит следующий указатель на css:
<link rel="stylesheet" href="{{ STATIC_URL }}css/base.css" type="text/css">


Какой путь нужно указать в settings.STATIC_URL и как это вычисляется? Пытался ориентироваться по подсказкам pycharm, но всё безуспешно.
  • Вопрос задан
  • 2243 просмотра
Решения вопроса 1
dunmaksim
@dunmaksim
Технический писатель
STATIC_URL - это часть URL, с которой будет начинаться путь к статике. Допустим,
STATIC_URL='vendor'
Теперь при парсинге URL Django будет сразу понимать, что запросы вида
http://mysite.ru/vendor/...
относятся к статическому контенту и делать там ничего не надо, нужно просто вернуть файл.
Кроме этих параметров в settings.py для статики нужно указать ещё параметр PATH_TO_STATIC - это папка, куда Django при выполнении команды
python manage.py collectstatic
сложит все статические файлы.
А вот в каждом приложении я обычно делаю так:
  • создаю папку static
  • в ней создаю папку с именем приложения, чтобы при сборе статики не было каши
  • кладу в папку нужные библиотеки и т.д.
Вот тут полный разбор данного вопроса (ENG).
Ну и не забываем в начале шаблонов писать тег:
{% load staticfiles %}
Вот тогда ссылки будут работать:
<link rel="stylesheet" href="{% static 'desktop/libs/bootstrap/css/bootstrap.css' %}"/>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mututunus
@mututunus
Backend developer (Python, Golang)
Отсчет начинается со STATIC_ROOT
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы