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"
Мое дерево проектов выглядит следующим образом:
Я попробовал переместить папку в родительский каталог и изменить путь. Не помогло.
Попробовал восстановить статический файл, и он выдал аналогичную ошибку:
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.