Как использовать static ссылки в css (Django)?
Доброго времени суток!
Приступила к изучению Django (делаю тестовое приложение-каталог для фильмов), и столкнулась со следующим вопросом: как использовать static ссылки в css файле (Django)?
Смотрите, есть следующая структура папки static:
LK_library - это папка проекта; в css - один единственный файл styles.css, а в папках fonts и images, соответственно, файлы шрифтов и изображений.
Вот таким образом выглядит подключение шрифтов:
@font-face {
font-family: "Kyiv Type";
src:
url("resources/kyivtypetitling/KyivTypeTitling-Regular.woff") format("woff"),
url("resources/kyivtypetitling/KyivTypeTitling.woff") format("woff");
}
И фонового изображения:
background-image: url("resources/hero_bg.png");
Естественно, все это до танцев с бубном (начало работы с Django).
Первым делом, я пошла менять путь подключения шрифтов и изображения (по примеру того, как я делала это в самом файле html, который и использует файл styles.css):
{% load static %}
@font-face {
font-family: "Kyiv Type";
src:
url("{% static 'fonts/KyivTypeTitling-Regular.woff' %} ") format("woff"),
url("{% static 'fonts/KyivTypeTitling.woff' %} ") format("woff");}
background-image: url("{% static 'images/hero_bg.png' %}");
Результата не было никакого. После я убрала "url" из маршрутов:
{% load static %}
@font-face {
font-family: "Kyiv Type";
src:
"{% static 'fonts/KyivTypeTitling-Regular.woff' %} " format("woff"),
"{% static 'fonts/KyivTypeTitling.woff' %} " format("woff");
}
background-image: "{% static 'images/hero_bg.png' %}";
И снова ничего. Естественно, в первую очередь я пошла смотреть в лог, и получила следующий ответ от системы:

Казалось бы, чего проще - файлы по следующим адресам не найдены. Только загвоздка в том, что папки "resources" и папки "kyivtypetitling" просто нет в проекте, и ссылок на эти папки тоже нигде нет.
Вернее как: ранее в процессе верстки я действительно создавала данные папки, только в процессе создания самого проекта Django шрифты из папки kyivtypetitling были перенесены в папку static/fonts, а изображения из папки "resources" были перенесены в папку static/images.
При чем сам .css явно подключен корректно, поскольку все элементы на странице выровнены правильно.
Подскажите пожалуйста, где я могла ошибиться (ну новичок я в Django).
Ответы (1 шт):
Не работает конкретно что? Если не применяются стили и остальное при условии что
DEBUG = True
то попробуйте добавить следующий код в настройки вашего проекта
# settings.py
STATICFILES_DIRS = [
BASE_DIR / "static",
]
STATIC_URL = 'static/'
MEDIA_URL = 'media/'
и файл URLConf
# urls.py
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
