Почему обслуживание статических файлов является проблемой в приложениях на Python
Я, кажется, не понимаю проблему с обслуживанием статических файлов в приложениях на Python, например, Django. Сейчас я читаю документацию по WhiteNoise и первый вопрос - зачем он вообще был разработан? Я имею в виду, какую проблему он решает? Почему мы не можем сохранить все статические файлы в папке /static и скопировать их на хостинг.
Я, кажется, не понимаю проблему с обслуживанием статических файлов в приложениях Python, например, Django.
Как указано в документации по управлению статическими файлами :
Этот метод крайне неэффективен и, вероятно, небезопасен, поэтому он непригоден для производства.
Действительно, представления Django для обслуживания статических файлов, скорее всего, не очень эффективны. Веб-сервер обычно кэширует определенное количество файлов, использует сжатие для отправки их в браузер (если браузер это принимает) и т.д. Представления Django для обслуживания статических/медиа файлов не предназначены для конкуренции с веб-сервером типа apache/nginx.
Даже если эта проблема решена, использование сервера signle для обслуживания статического контента - не самая лучшая идея. Часто Content Delivery Networks (CDN) используются для поиска близкого к клиенту сервера, который может обслуживать эти файлы.
Поэтому документация Django содержит статьи о том, как развернуть статические файлы на выделенном сервере и как настроить этот сервер.
Пакет whitenoise - это просто попытка наилучшим образом обслужить эти файлы с помощью представления Python. Python больше предназначен для сокращения времени программиста, а не времени обработки, поэтому, хотя whitenoise и эффективен, он, скорее всего, не сможет конкурировать с CDN.