Подтвердить что ты не робот

Как включить сжатие gzip на кедрах Heroku (Python/Flask/Gunicorn)

Как включить компрессию GZIP в новом стекле Керока Героку? Это прямо из сайта:

Так как запросы к приложениям Cedar производятся непосредственно на сервер приложений - не проксированные через HTTP-сервер, такой как nginx, любое сжатие ответов должно выполняться в вашем приложении. Для приложений Rack это можно выполнить с помощью промежуточного программного обеспечения Rack:: Deflater. Для статических активов gzipped убедитесь, что Rack:: Deflater загружен до ActionDispatch:: Static в стеке промежуточного программного обеспечения.

Если я правильно прочитал, мой код приложения Python теперь отвечает за gzipping ответов? Как мне сжать мои статические активы (например, css/js)? Я использую Flask и GUnicorn.

4b9b3361

Ответ 2

В соответствии с спецификацией WSGI, опубликованной в 2003 году, приложениям не следует gzip-ответы, но оставить это на сервере (предположительно Apache, работает приложение CGI-stylee).

Приложения

и промежуточное ПО не должны применять к их выходу какой-либо Transfer-Encoding, такой как chunking или gzipping; как операции "прыжок в хоп", эти кодировки являются областью фактического веб-сервера/шлюза.

Но сегодня в 2013 году, часто приложение является сервером. WSGI этого не ожидал. Это проблема, согласно http://www.b-list.org/weblog/2009/aug/10/wsgi/

WSGI с любопытством настаивать на совместимости с CGI также означает, что здесь, в 2009 году, мир веб-разработки Python до сих пор не смог значительно улучшить модель программирования приложений 1997 года.