Heroku не собирает статистику c на Django, но сообщает, что собирает - PullRequest
0 голосов
/ 04 августа 2020

Команда heroku run python manage.py collectstatic возвращает мне что-то вроде

163 static files copied to '/app/live-static-files/static-root', 
509 post-processed.

Вот мои настройки:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware', # White Noise
    'django.contrib.sessions.middleware.SessionMiddleware',
    ...
]
STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, "live-static-files", "static-root")

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

MEDIA_URL = "/media/"

MEDIA_ROOT = os.path.join(BASE_DIR, "live-static-files", "media-root")

DISABLE_COLLECTSTATIC = 0

Через heroku run bash i go /app/live-static-files/static-root и вижу, что он пуст (папка существует, как в репо с .gitkeep), а сервер выдает ошибку 500 по всем запросам.

Теперь с heroku run bash я пробую python manage.py collectstatic, и он работает! Но после heroku restart он снова пуст.

Почему Heroku сообщает, что он скопировал статику, даже указывает правильный путь к папке статики, но на самом деле этого не делает? Почему на самом деле этого не происходит?

1 Ответ

1 голос
/ 04 августа 2020

Файловая система Heroku эфемерна - это означает, что любые изменения в файловой системе во время работы дино длятся только до его выключения или перезапуска. Каждый dyno загружается с чистой копией файловой системы из самого последнего развертывания. Это похоже на то, как работают многие контейнерные системы, такие как Docker.

Кроме того, при нормальных операциях дино перезапускаются каждый день в процессе, известном как «Цикл».

Прочтите эти статьи:

https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted

https://devcenter.heroku.com/articles/django-assets

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...