css не применяет стиль к шаблонам в django - PullRequest
0 голосов
/ 21 марта 2020

Тема, примененная css, не работает. Раньше она применялась, но я не делаю то, что делала, она больше не исполняется. base.htmnl - основной шаблон для других страниц.

В base.html у меня есть:

<!DOCTYPE html>
{% load staticfiles %}

<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">

    <link rel="stylesheet" href="{% static 'nana/css/main.css' %}"> 

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>



    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>


  </head>
  <body>

    <nav class='navbar mynav-fixed-top navbar-expand-lg bg-dark' role='navigation' id='navbar'>
      <div class="container-fluid">

      </div>

    </nav>

    <div class="container-fluid">

    {% block content %}

    <div class="main">

    </div>

{% endblock %}

main.css

body{background-color: yellow}

settings.py:

STATIC_URL = '/static/'

STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

css нет Работа. Я не знаю, почему приложение не применяет изменения в файле css. Был бы признателен, хотя и поможет, как это исправить.

Ответы [ 3 ]

0 голосов
/ 21 марта 2020

Лучше установить STATIC_ ROOT вместо STATICFILES_DIRS, если это единственная папка с файлами stati c в вашем проекте:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')

и изменить {% load staticfiles %} на {% load static %} в ваши шаблоны - load staticfiles метод устарел с версии 2.1.

Кроме того, как уже предлагалось в комментариях, поместите вашу таблицу стилей после всех таблиц стилей третьей стороны - таким образом, она будет иметь более высокий приоритет. Также обратите внимание, что ваш стиль может иметь более низкий приоритет, если любой из предыдущих таблиц стилей определяет то же свойство с помощью !important option .

0 голосов
/ 21 марта 2020

Вы не установили STATIC_ ROOT, поэтому ваш css не отображается.

Сначала Убедитесь, что в settings.py для параметра отладки установлено значение True

Debug=True

Поместите следующий код в settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticroot')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

в основной файл urls.py

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # other urls
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

и затем вызовите следующую команду

>python manage.py collectstatic
0 голосов
/ 21 марта 2020

Как правило, лучше иметь ссылку на собственную таблицу стилей (в вашем случае это main.css) после других таблиц стилей в разделе head. Таблицы стилей bootstrap могут перезаписать ваш main.css, что сделает его бесполезным. У вас есть ссылка на main.css перед ссылками на bootstrap.

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