Панель навигации не может распознать статический файл в моем проекте Django
Я хочу использовать стиль CSS в статическом файле для панели навигации, но он не распознается, и я получаю ошибку:
Not Found: /favicon.ico
[04/Mar/2024 17:57:46] "GET /favicon.ico HTTP/1.1" 404 3581
[04/Mar/2024 18:17:46] "GET /list?page=1 HTTP/1.1" 200 1374
просматривает py:
class ListFeedBack(ListView):
template_name = 'feedback/list_feedback.html'
model=Feedback
paginate_by = 2
list_feedback.html:
{% extends 'feedback/base.html' %}
{% block content %}
{% load static %}
<h2>Все отзывы</h2>
<table>
<tr>
<th>Номер</th>
<th>Имя</th>
<th>Фамилия</th>
<th>Отзывы</th>
<th>Рейтинг</th>
</tr>
{% for i in object_list %}
<tr>
<th><a href="{{i.get_url}}">{{i.id}}</a></th>
<th>{{i.name}}</th>
<th>{{i.surname}}</th>
<th>{{i.feedback}}</th>
<th>{{i.rating}}</th>
</tr>
{% endfor %}
</table>
{% endblock %}
{% block navbar %}
<nav class="list-pages">
<ul>
{% for p in paginator.page_range %}
<li class="page-num">
<a href="?page={{p}}">{{p}}</a>
</li>
{% endfor %}
</ul>
</nav>
{% endblock %}`
Примечание: я также использую base.html с пустым блоком navbar
base.html:
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title> {% block title %} {% endblock %} </title>
<link rel="stylesheet" href=" {% static 'feedback/field.css' %}">
</head>
<body>
{% block content %}
{% endblock %}
<link rel="stylesheet" href=" {% static 'feedback/table.css' %}">
{% block navbar %}
{% endblock %}
</body>
</html>
Примечание: пробовал использовать с направлением favicon, но получил ту же ошибку.
urls.py:
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('done', views.DoneView.as_view()),
path('', views.FeedBackView.as_view()),
path('list', views.ListFeedBack.as_view()),
path('<int:id_feedback>', views.UpdateFeedbackView.as_view(), name='update_feed'),
path('detail/<int:pk>', views.DetailFeedBack.as_view(),name='feedback_details'),
path('update/<int:pk>', views.FeedBackViewUpdate.as_view(),name='feedback_details'),
]
styles.css
Решение, которое вы ищете
Я предполагаю, что вы хотите использовать файл styles.css
, который вы указали в навигационной панели. Я не вижу в вашем HTML-шаблоне никакого тега <link rel="stylesheet"...>
для загрузки этого файла. Возможно, именно этого вам не хватает.
Если css-файл, который вы пытаетесь использовать, входит в число feedback/table.css
и feedback/field.css
, возможно, вы не настроили STATICFILES_DIRS
на включение этих файлов?
Ошибка, которую вы видите
Ошибка с фавиконом не связана; всякий раз, когда вы загружаете сайт в браузере, браузер делает запрос к конечной точке /favicon.ico
для фавикона и ожидает, что ваш сервер вернет файл с иконкой. Поскольку в urls.py нет маршрута favicon.ico
, ваш сервер отвечает 404.
Вы можете исправить это, включив тег <link rel="icon"...>
в заголовок HTML, или передав иконку по пути /favicon.ico
.
Несколько дополнительных заметок
- Вам следует стараться сохранять теги
<link...>
в HTML<head>
, а не оставлять их вокруг тела, как это сделано в вашем base.html .
- У вас есть два маршрута с
name='feedback_details'
, что, скорее всего, не то, что вы хотите :)