Django не может прочитать папку «static», хотя она доступна

Может показаться, что вопрос дублируется, но я читал и пробовал различные решения, и это не работает для меня. Я использую MAC OS и запускаю venv с Django5.

Получаем ошибку, утверждающую, что параметр «STATICFILES_DIRS не существует.».

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

Desktop/Projects/Django/moviestore/moviesstore/static' в настройке STATICFILES_DIRS не существует.

Проверка системы выявила 1 проблему (0 замалчивается).

<<<0>>>У вас есть 18 непримененных миграций. Ваш проект может работать некорректно, пока вы не примените миграции для приложений: admin, auth, contenttypes, sessions. Выполните команду „python manage.py migrate“, чтобы применить их. April 10, 2025 - 02:45:10 Django версии 5.0, использование настроек 'moviestore.settings' Запуск сервера разработки по адресу http://127.0.0.1:8000/ Выход из сервера с помощью CONTROL-C.


settings.py

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = "**********"

DEBUG = True

ALLOWED_HOSTS = []

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "home"
]

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
]

ROOT_URLCONF = "moviestore.urls"

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [os.path.join(BASE_DIR, 'moviesstore/templates')],
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
                "django.template.context_processors.debug",
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
            ],
        },
    },
]


WSGI_APPLICATION = "moviestore.wsgi.application"

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": BASE_DIR / "db.sqlite3",
    }
}


AUTH_PASSWORD_VALIDATORS = [
    {
        "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
    },
    {
        "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
    },
    {
        "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
    },
    {
        "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
    },
]



LANGUAGE_CODE = "en-us"

TIME_ZONE = "UTC"

USE_I18N = True

USE_TZ = True


STATIC_URL = "static/"
STATICFILES_DIRS = [
    BASE_DIR / 'moviesstore/static/',
]


DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"

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

[![enter image description here](https://i.sstatic.net/YkECMhx7.png)](https://i.sstatic.net/YkECMhx7.png)

Я попробовал переместить папку в родительский каталог и изменить путь. Не помогло.

Попробовал восстановить статический файл, и он выдал аналогичную ошибку:

WARNINGS: ?: (staticfiles.W004) The directory '*/Desktop/Projects/Django/moviestore/static' in the STATICFILES_DIRS setting does not exist

Попробовал изменить путь на : STATICFILES_DIRS = (os.path.join(BASE_DIR, "moviesstore/static"),), но и это дает ту же ошибку:

WARNINGS: ?: (staticfiles.W004) The directory '/Users/"name"/Desktop/Projects/Django/moviestore/moviesstore/static' in STATICFILES_DIRS setting does not exist.

Я новичок в Django и изучаю его по книге, а это не работает.

Я пробовал искать похожий вопрос, но не могу понять решения.

Может ли кто-нибудь помочь мне определить проблему и понять причину и решение, пожалуйста.

The first comment to the question is the answer. It was a silly typo!

Shout out to Abdul Aziz Barkat (https://stackoverflow.com/users/14991864/abdul-aziz-barkat) for providing the answer.

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