@vanya02900
Начинающий программист

Не применяются стили в Django. Что не так?

Создал второе приложение в Django, и в нём создал HTML-документ(news.html)
{% extends 'index/layout.html' %}

{% block title %}Новости{% endblock %}

{% block content %}
    <h1>Новости</h1>
    {% for el in news %}
        <div class="alert alert-warning">
            <h3>{{ el.title }}</h3>
            <p>{{ el.anons }}</p>
        </div>
    {% endfor %}
{% endblock %}

Основной HTML-документ(layout.html)
{% load static %}
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{% block title %}{% endblock %}</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <link rel="stylesheet" href=" {% static 'index/css/layout.css' %} ">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">
    <link rel="stylesheet" href="{% static 'news/css/news.css' %}">
</head>
<body>
    <aside class="back">
        <img src="{% static 'index/img/logo1.png' %}" alt="Логотип">
        <span class="logo">Django</span>
        <h3 class="navigation">Навигация</h3>
        <ul>
            <a href="{% url 'index' %}"><li><i class="fas fa-home"></i> Главная</li></a>
            <a href="{% url 'about' %}"><li><i class="fas fa-address-card"></i> Про нас</li></a>
            <a href="{% url 'contacts' %}"><li><i class="fas fa-address-book"></i> Контакты</li></a>
            <a href="{% url 'news' %}"><li><i class="fas fa-newspaper"></i> Новости</li></a>
        </ul>
    </aside>
    
    <main>
        {% block content %}
        {% endblock %}
    </main>
</body>
</html>


Основной документ находится в первом приложении - "index", а news.html находится в приложении - "news".

В первом приложении есть ещё документы в них стили работают.
А в основном надо вывести запись с папки models.py, с этим проблем нет, только стили не применяются!

news/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.news, name='news'),
]


news/views.py
from django.shortcuts import render
from .models import MyModel


def news(request):
    news = MyModel.objects.all()
    return render(request, 'news/news.html', {'news': news})


Основной urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('index.urls')),
    path('news/', include('news.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)


P.S. Не знаю надо ли это, но запишу
index/urls.py(первое приложение, где находятся основной HTML-документ и стили)
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
    path('contacts/', views.contacts, name='contacts')
]

index/views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
    return render(request, 'index/index.html')

def about(request):
    return render(request, 'index/about.html')

def contacts(request):
    return render(request, 'index/contacts.html')

P.S.S. Стили пытался подключать не только с первого приложения(index), но и со второго(news), где находится news.html
  • Вопрос задан
  • 703 просмотра
Решения вопроса 1
dunmaksim
@dunmaksim
Технический писатель
1. Измените базовый шаблон, добавив пустой блок в head после подключения всех CSS:
{% block css %} {% endblock %}
2. В расширяющем шаблоне заполните этот блок:
{% block css %}
<link rel="stylesheet" href="{% static 'path/to/css.css' %}">
{% endblock %}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы