Действительно ли белый шум действительно требует колстатика? - PullRequest
0 голосов
/ 07 ноября 2018

Я исследую использование whitenoise для обслуживания статических файлов в приложении Django, которое упаковано в контейнер Docker. В документации сказано:

В качестве части развертывания вашего приложения вам нужно запустить ./manage.py collectstatic, чтобы поместить все ваши статические файлы в STATIC_ROOT. (Если вы работаете на Heroku, то это делается автоматически для вас.)

Это действительно нужно? Я не запускаю ./manage.py collectstatic и статические файлы все еще обслуживаются.

Если это не нужно, это оптимизация? Я пытаюсь избежать ненужных шагов в процессе развертывания.

1 Ответ

0 голосов
/ 07 ноября 2018

Как говорится в этой цитате, Whitenoise обслуживает файлы из STATIC_ROOT. collectstatic собирает файлы из STATICFILES_DIRS и любых статических каталогов, специфичных для приложения, и помещает их в STATIC_ROOT.

Но есть две ситуации, когда он будет обслуживать файлы без запуска collectstatic. Во-первых, если ваши файлы уже в STATIC_ROOT. Так не должно быть, но распространенной ошибкой является установка значения STATIC_ROOT в каталог, содержащий исходные файлы. Однако в этом случае он, например, не найдет файлы администратора, которые необходимо будет собрать.

Другая ситуация, если вы работаете с DEBUG = True. Whitenoise наследует это значение для своего USE_FINDERS значения , что позволяет ему выглядеть в тех же местах, что и сам collectstatic, для обслуживания файлов. Понятно, что вы не захотите работать в рабочей среде с DEBUG, но вы можете установить этот параметр явно. Но, как указывает ссылка на эту документацию, это отключит функции кэширования и сжатия в Whitenoise.

...