Можно ли обслуживать статические файлы с помощью Django для небольшого внутреннего веб-приложения?

Начнем с того, что мое приложение является простым внутренним приложением только для нашей команды, поэтому оно означает максимум ~ 10 пользователей, ничего из «высоконагруженного» материала, ничего, связанного с внешним производственным Интернетом.

Как я читал из других сообщений и вопросов, рекомендуется использовать nginx, обращенный к пользователям (на хосте), некоторый сервер wsgi (например, Gunicorn или uwsgi) в основном контейнере Docker и статический сервер (например, nginx) для статического обслуживания. .

Но я чувствую, что это становится слишком много для моего простого приложения, я не вижу необходимости иметь два контейнера Docker. Я хотел бы просто использовать типичный manage.py runserver, и это было бы намного проще и проще. Почти во всех сообщениях, которые я читал, упоминается, что это «небезопасно и неэффективно» — но действительно ли вас это волнует, если ваш сервис чисто внутренний и для 5-10-20 пользователей? Или есть какая-то альтернатива, которая не требует установки отдельного статического обслуживающего сервера? Я читал про Whitenoise, но, если я правильно понял, он все равно требует сначала сделать manage.py collectstatic, что очень неэффективно для локальной разработки.

Является ли использование manage.py для обслуживания статики настолько неэффективным? Было бы приемлемым подходом использовать его для небольших внутренних веб-инструментов?


person The Godfather    schedule 10.05.2019    source источник
comment
Когда я разрабатываю локально, я использую manage.py runserver и не хочу запускать дополнительную команду, например collectstatic, каждый раз, когда я меняю свои скрипты css.   -  person The Godfather    schedule 11.05.2019


Ответы (1)


Вам не нужно запускать collectstatic, чтобы использовать WhiteNoise. Вам просто нужно использовать эту настройку:

WHITENOISE_USE_FINDERS = True

Подробнее см.: http://whitenoise.evans.io/en/stable/django.html#WHITENOISE_USE_FINDERS

Это в основном имитирует поведение runserver в производственной среде, что хорошо для небольшого внутреннего приложения с низким трафиком.

person D. Evans    schedule 14.05.2019