Где разместить ГЛОБАЛЬНЫЙ .css файл для всех приложений, используемых в проекте Django?

Я видел похожие вопросы, заданные на SO, но из поиска, который я сделал, я не нашел ответа на этот вопрос.

Я знаю, что вы можете иметь папку static как на уровне проекта, так и на уровне приложения. У меня есть файл .css, который я хотел бы, чтобы использовали ВСЕ приложения. Я думаю, что он находится в папке static приложения project, но я не знаю, как "получить доступ" к нему из файла template.html моего приложения.

Древовидная структура моего проекта выглядит следующим образом:

| Website
    | templates
        - base.html
    | static
        | css
            - style.css
    | Main_Project
        | apps
            | Main_App
                | templates
                    - app_template.html
                | migrations
                - admin.py
                - models.py
                - ...

Соответствующая часть моего settings.py выглядит следующим образом:

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = str(BASE_DIR) + "/media/"

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/media/'

# Absolute path to the directory that holds static files.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = str(BASE_DIR) + "/static/"

# URL that handles the static files served from STATIC_ROOT.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

А app_template.html, который должен загрузить файл .css, выглядит так:

{% load static %}
{% block page_content %}
<head>
    <meta http-equiv="refresh" content="3;url=http://127.0.0.1:8083/projects/" />
</head>
<link rel="stylesheet" href="{% static "css/style.css"%}" />
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<div class="bg-img"></div>
<div class="w3-display-middle">
    <h1 class="w3-xxxlarge w3-animate-top text-shadow">Welcome back, {{ current_visitor.visitor_name }}!</h1>
</div>
{% endblock %}

Итак, я предполагаю, что получаю эту ошибку:

[17/Jun/2022 20:00:12] "GET /static/css/style.css HTTP/1.1" 404 1798

...потому что он пытается искать в статической папке APP, которая не содержит этого пути. Как я могу изменить это так, чтобы он искал в (назовем ее) "глобальной" статической папке?

Прочитав еще раз эту статью , я понял, что папки static являются зависимыми от приложений, и только после запуска collectstatic они собирают все материалы приложений static в родительскую папку STATIC_ROOT. Не стесняйтесь меня поправить, но это мое предположение на данный момент.

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