В производственных средах у вас уже есть реальный http-сервер, который подключается к django (через mod_python, fcgi или wsgi), поэтому здравый смысл - обслуживать файлы непосредственно с него.
Этоотправит ответы быстрее:
- , когда вы обслуживаете статический файл через правильно настроенный apache или nginx, издержки будут минимальными.По запросу сервер проверяет, существует ли файл по указанному пути, затем отправляет его в браузер (конечно, добавляя несколько заголовков).
- когда вы обслуживаете статический файл через django, настроенный через apache или nginx, сначала веб-сервер подключается к django, затемdjango обрабатывает вещи более сложным образом:
- создает объект запроса,
- запускает совпадения urlpatterns REGEXP до тех пор, пока не находит строки, отвечающие за статические,
- запускает некоторый статический обслуживающий код, который отправляет его обратнопользователю ...
Это будет потреблять гораздо меньше ресурсов:
- каждый процесс django потребляет МНОГО памяти, примерно в 10 раз больше, чем тот женастроенный процесс apache, обслуживающий тот же статический файл,
Он будет масштабироваться лучше:
- правильно настроенный nginx может обрабатывать в 100 раз больше запросов, потребляя гораздо меньше ресурсов процессора и памяти ...
Он может быть передан на аутсорсинг:
- , хотя написано, что вам нужно настроить apache или nginx, но не можете - вы можетепередайте эти файлы таким службам, как Amazon S3 или Google API, чтобы js & css была «ближе» к пользователям, и в случае, если такие службы, как Google API, есть вероятность, что библиотека, которую вы хотите добавить (например, jQuery), уже кэшируется в браузере пользователя.
Все эти вещи, сложенные вместе, просто сделают ваш сайт загруженным быстрее .