Исправление загрузки статических шаблонов Django

Я долго искал ответ на этот вопрос, и мне кажется, что я все делаю правильно и воспользовался предложениями в нескольких постах, но это все еще ставит меня в тупик. Я пытаюсь загрузить статику в мой шаблон django, но по какой-то причине я продолжаю получать ошибку нерешенного шаблона и он не загружается в браузере.

project/settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.0/howto/static-files/

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

Я установил статический корень. Затем в моем base.html у меня есть:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="icon" type="image/png" sizes="16x16" href="{% static "favicon/favicon.png" %}">
    <title>Title</title>
    <script src="https://cdn.tailwindcss.com"></script>
</head>
<body>

{% include "navbar.html" %}

<img src="{% static "favicon/favicon.png" %}" alt="img"/>

<main class="container mx-auto p-8">
    {% block main %}{% endblock %}
</main>
</body>
</html>

Мне кажется, что я упускаю что-то очевидное, потому что эта директория должна существовать, но шаблон django не находит ее! Я пробовал использовать {% load staticfiles %} вместо этого, но он выдает ошибку, говоря, что не может найти staticfiles. Любая помощь будет оценена по достоинству!

Edit: Я использую django 4.0.6, если это имеет значение!

Спасибо, Митчелл

Сначала,

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

Должно быть

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

Кроме того, проверьте в настройках, установлен ли параметр DEBUG в True или False. Если True, убедитесь, что вы запустили python manage.py collectstatic и что он поместил ваши файлы в папку STATIC_ROOT - которая должна быть BASE_DIR/static

Если это не поможет, посмотрите на HTML в браузере и посмотрите, какой img src генерируется там, а также на значение BASE_DIR, чтобы убедиться, что вы начинаете с правильного уровня.

Мне удалось решить эту проблему, удалив параметр STATIC_ROOT.

Я не могу объяснить, почему это работает, но я приму это.

Вернуться на верх