Как заставить отдавать статику из главной папки Django?

Чтобы заставить Django отдавать статические файлы из корневой папки проекта, вам понадобится ряд настроек и изменений в вашем коде.

1. В первую очередь, убедитесь, что у вас есть папка "static" в корневой директории вашего Django проекта. В этой папке будут храниться все ваши статические файлы (например, CSS, JS, изображения и др.).

2. Откройте файл настроек проекта settings.py. Вам необходимо внести следующие изменения:

# Настройки статических файлов
STATIC_URL = '/static/' # URL для доступа к статическим файлам
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # Путь к папке, где будут собраны все статические файлы

# Добавляем папку с вашими статическими файлами к списку мест, где Django будет искать статику
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

3. Создайте файл urls.py в корневой папке проекта (если его еще нет), если он уже есть, то откройте его. Добавьте следующий код:

from django.conf import settings
from django.conf.urls.static import static

# ваш остальной код URL-ов

# Добавляем путь для обслуживания статических файлов во время разработки
# Важно: эта настройка только для использования во время разработки, в production необходимо использовать статический сервер (например, Nginx или Apache)
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

4. Сохраните изменения и перезапустите сервер разработки Django.

Теперь ваш проект должен отдавать статические файлы из главной папки Django. Вы можете использовать их в HTML-шаблонах следующим образом:

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<script src="{% static 'js/main.js' %}"></script>
<img src="{% static 'images/logo.png' %}" alt="Логотип">

Обратите внимание, что вместо 'css/style.css', 'js/main.js', 'images/logo.png' вы должны указывать путь к вашим статическим файлам относительно папки "static".