Django: Ошибка при запуске python manage.py collectstatic - SuspiciousFileOperation
Я готовлюсь к развертыванию приложения Django с фронтендом React на Heroku. Когда я запускаю python manage.py collectstatic
, я получаю следующую ошибку :
raise SuspiciousFileOperation(django.core.exceptions.SuspiciousFileOperation: The joined path (/Users/x/Desktop/x/_code/app/static/media/SourceCodePro-Light.77e36241fe57a40a332a.otf) is located outside of the base path component (/Users/x/Desktop/x/_code/app/staticfiles)
Я следовал документации Django по настройке django.contrib.staticfiles
для развертывания. Соответствующие настройки в settings.py:
BASE_DIR = Path(__file__).resolve().parent.parent
DEBUG = False
...
STATIC_URL = 'static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'build/static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
Насколько я понимаю, параметр STATICFILES_DIRS
указывает Django, где искать дополнительные статические файлы для сбора в STATIC_ROOT
. А ошибка, которую я получаю, возникает из-за того, что объединенный путь не содержится в базовом пути.
Проблема в том, что если это так, то я не понимаю, почему компонент базового пути не ссылается на BASE_DIR
, т.е. /Users/x/Desktop/x/_code/app/
.
Я перепробовал все варианты добавления/удаления слешей в каждом пути в соответствующих настройках, а также настройки STATIC_ROOT = BASE_DIR
. На самом деле, независимо от того, на что я меняю STATIC_ROOT
, я получаю ту же ошибку, и папка /Users/x/Desktop/x/_code/app/staticfiles
по-прежнему создается. Это наводит меня на мысль, что моя настройка где-то переопределяется.
Заранее благодарю за любые предоставленные решения.