Django Errno 30: файловая система только для чтения при развертывании на Heroku

Я постоянно получаю следующую ошибку при развертывании моего приложения Django на Heroku.

Traceback (most recent call last):
  File "/app/manage.py", line 22, in <module>
    main()
  File "/app/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 363, in execute
    settings.INSTALLED_APPS
  File "/app/.heroku/python/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/app/my-app/settings.py", line 292, in <module>
    django_heroku.settings(locals())
  File "/app/.heroku/python/lib/python3.9/site-packages/django_heroku/core.py", line 93, in settings
    os.makedirs(config['STATIC_ROOT'], exist_ok=True)
  File "/app/.heroku/python/lib/python3.9/os.py", line 225, in makedirs
    mkdir(name, mode)
OSError: [Errno 30] Read-only file system: '/staticfiles'

Я пробовал другие решения на SO, такие как этот безрезультатно.

Вот соответствующие версии и настройки

python==3.9.7
django==3.2.13
django-heroku==0.3.1
whitenoise==6.2.0

От settings.py:

import os
from decouple import config
import django_heroku

PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(PROJECT_DIR)

STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATIC_URL = "/static/"

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
STATICFILES_STORAGE = "whitenoise.storage.CompressedStaticFilesStorage"

django_heroku.settings(locals())

Я не вижу никаких критических различий между моим файлом settings.py и, скажем, примером приложения, предоставленным Heroku. Я также попробовал изменить путь STATIC_ROOT с staticfiles на другое имя, но получил ту же ошибку относительно /staticfiles. Может ли быть так, что STATIC_ROOT или мой BASE_DIR не считывается из моего settings.py файла django_heroku?

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