Где разместить ГЛОБАЛЬНЫЙ .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
. Не стесняйтесь меня поправить, но это мое предположение на данный момент.