Как подключить стили в django, и можно ли использовать их вместе с бутстрапом?
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
настройки django приложение выглядит примерно так:
project/
app1/
templates/
base.html
app2/
mainapp/
static/
css/
styles.css
project/ app1/ templates/ base.html app2/ mainapp/ static/ css/ styles.css Не совсем понимаю, как подключить в последней версии джанго в base.html, который находится в app1
Ответы (1 шт):
папка static обычно используется для хранения окончательной версии всех статических файлов твоего проекта, которые собирается из всех приложений, которые в нем участвуют + общих для всех статических файлов. Изначально хранить общие статические файлы в ней на мой взгляд плохая идея, так как после выполнения команды collectstatic файлы в ней могут быть перезаписаны и если запутаться с именами, можно перезаписать один файл другим без возможности восстановления нужной версии(без исопльзования сторонних инструментов).
Поэтому я бы выделил две папки
static/ - в которую будут собираться все статические файлы со всех приложений проекта и staticfiles/ - папка в которой хранятся статические файлы общие для проекта, не зависящие от конкретного приложения.
Внутри staticfiles можно настроить нужную тебе структуру папок, например:
staticfiles/css
staticfiles/js
и в настройках проекта settings.py
INSTALLED_APPS = [
...
'django.contrib.staticfiles',
]
...
STATIC_ROOT = os.path.join(BASE_DIR, 'static') # папка в которую будут собираться статические файлы
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'staticfiles'), # папка из которой будут собираться общие файлы для всех проектов
]
Перенеси css/styles.css в папку staticfiles
дальше в шаблон base.html как тебе указали можешь добавить строчку
<link href="{% static 'css/styles.css' %}" rel="stylesheet">
Так же нужно учитывать, что обычно работа со статикой не входит в обязанности django, это работа веб сервера, но на момент разработки, что бы не усложнять себе жизнь, можно заставить джанго обрабатывать статику. Сделать это можно изменив файл urls.py
from django.conf import settings
from django.conf.urls.static import static
...
urlpatterns = [
# ... the rest of your URLconf goes here ...
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)