Действительно ли белый шум требует колстатика?
Я исследую использование whitenoise для обслуживания статических файлов в приложении Django, которое упаковано в контейнер Docker. В документации сказано:
При развертывании приложения вам нужно запустить./manage.py collectstatic, чтобы поместить все ваши статические файлы в STATIC_ROOT. (Если вы работаете на Heroku, то это делается автоматически для вас.)
Это действительно нужно? Я не бегаю ./manage.py collectstatic
и статические файлы все еще обслуживаются.
Если это не нужно, это оптимизация? Я пытаюсь избежать ненужных шагов в процессе развертывания.
1 ответ
Как говорится в этой цитате, Whitenoise обслуживает файлы из STATIC_ROOT. collectstatic
собирает файлы из STATICFILES_DIRS и любых статических каталогов приложений и помещает их в STATIC_ROOT.
Но есть две ситуации, когда он будет обслуживать файлы без запуска collectstatic. Первый, если ваши файлы уже находятся в STATIC_ROOT. Так не должно быть, но распространенной ошибкой является установка значения STATIC_ROOT в каталог, содержащий исходные файлы. Однако в этом случае он, например, не найдет файлы администратора, которые необходимо будет собрать.
Другая ситуация, если вы работаете с DEBUG=True. Whitenoise наследует это значение для его USE_FINDERS
параметр, который заставляет его выглядеть в тех же местах, что и сам collectstatic для обслуживания файлов. Понятно, что вы не захотите работать в рабочей среде с DEBUG, но вы можете установить этот параметр явно. Но, как указывает ссылка на эту документацию, это отключит функции кэширования и сжатия в Whitenoise.