Django считает, что существует "SuspiciousFileOperation". Это не так
УDjango есть убеждение, что существует ошибка SuspiciousFileOperation, когда это просто не так. Моя полностью воспроизводимая установка приведена ниже. Она продолжает возвращать эту ошибку, несмотря на то, что:
- Я установил и настроил
Whitenoiseправильно, как и вMiddlewareиInstalledApps, вsettings.pyfilw, а также следующее:
INSTALLED_APPS = [
'django.contrib.staticfiles',
]
MIDDLEWARE = [
"whitenoise.middleware.WhiteNoiseMiddleware",
]
STORAGES = {
'default': {
'BACKEND': 'django.core.files.storage.FileSystemStorage',
},
"staticfiles": {
"BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage",
},
}
STATIC_ROOT = BASE_DIR / "staticfiles"
STATIC_URL = 'static'
STATICFILES_DIRS = [
BASE_DIR / "static"
]
- Несмотря на то, что я правильно настроил статический конфиг в моей корневой папке
urls.pyследующим образом:
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve
urlpatterns = [
......
]
# Only for development. Do not use this in production.
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
- Несмотря на то, что я правильно загружаю css-файл в свой шаблон:
#template html
{% load static %}
<head>
<link rel="stylesheet" type="text/css" href="{% static 'image-video-hero.css' %}">
</head>
#<filename>.css
@import url(image-video-hero.css);
Мой каталог выглядит следующим образом:
<PROJECTNAME>
<ROOTFOLDER>
settings.py
urls.py
<APP NAME>
static
file.css
static
libraries
css
image-video-hero.css
staticfiles
libraries
css
image-video-hero.css
Таким образом, нет никаких причин, почему у Django должны быть проблемы с этим, однако, когда я выполняю команду python manage.py collectstatic, я все равно получаю ответное сообщение:
raise SuspiciousFileOperation(
django.core.exceptions.SuspiciousFileOperation: The joined path (<FILEPATH>\static\libraries\css\image-video-hero.css) is located outside of the base path component (<FILEPATH>\<PROJECTNAME>\staticfiles)
Это абсолютно бессмысленно.
В переменной STATiC_ROOT я пробовал удалять прямые и обратные слэши, пробовал то же самое с настройками STATIC_URL и STATICFILES_DIRS и пробовал переставлять файлы в папке static. Кажется, ничто не решает проблему. Как мне решить эту проблему?
В соответствии с запросом, полная трассировка выглядит следующим образом: