Я заметил, что heroku внедряет промежуточное ПО rails3_serve_static_assets
в Cedar, когда для serve_static_assets
установлено значение false.Все, что я нашел на этом, - это этот сценарий инициализации , который соответствует имени, указанному при развертывании Heroku, и все, что он делает, - это снова включает обслуживание статических ресурсов.
Я пытаюсьчтобы получить больше информации о том, как Heroku обслуживает эти активы, потому что они, кажется, не приходят прямо из приложения Rails.
Когда я смотрю, например, на заголовки файла js, они смотрят что-тонапример:
Age:0
Connection:close
Content-Encoding:gzip
Content-Type:text/css
Date:Sun, 08 Jan 2012 19:04:05 GMT
Last-Modified:Sat, 07 Jan 2012 23:43:30 GMT
Server:nginx/0.7.67
Transfer-Encoding:Identity
Via:1.1 varnish
X-Varnish:677359987
Я предполагаю, что Via:1.1 varnish
означает, что эти активы обслуживаются через Varnish, но онлайн-документация .по этому вопросу говорится, что Varnish недоступен в Cedar.
Документы Cedar в сжатых ответах (внизу) гласят, что:
Поскольку запросы к приложениям Cedarвыполняются непосредственно на сервере приложений, а не через прокси-сервер через HTTP-сервер, такой как nginx. Любое сжатие ответов должно выполняться внутри вашего приложения.
Однако мы можем ясно видеть, что ресурс gzip'd согласнодо Content-Encoding
.Теперь я почти уверен, В Rails 3.0.x не включен Rack::Deflater
(он все равно не отображается в rake middleware
), поэтому я немного запутался в том, как этот активбудучи gzip'd.
Это своего рода предварительный курсор к моему следующему вопросу относительно обслуживания этих активов через Cloudfront, но мой вопрос здесь:
Может кто-тообъяснить точно, что происходит на Cedar re: статические активы.А именно, что обслуживает мои активы (Rails, Ngnix, Varnish ??) и что такое gzip'ng их?