Когда я использую свое приложение Rails для непосредственного обслуживания своих активов через стек Cedar в Heroku (т.е. НЕ через CDN), они автоматически получают gzip'd.(См. Мой предыдущий вопрос о том, почему я запутался в этом)
Теперь я пытаюсь настроить Cloudfront для обслуживания этих активов, и в идеале мне бы хотелось, чтобыони также должны быть gzip'd.Из того, что я прочитал, я подумал, что Cloudfront передаст заголовки Accept
моему приложению, поэтому они должны быть переданы gzip'd, если они поддерживаются (так же, как и когда вы делаете прямой запрос к ресурсу на heroku).).Но это не так.Заголовки ресурсов выглядят так:
Age:510
Connection:keep-alive
Content-Length:178045
Content-Type:text/css
Date:Sun, 08 Jan 2012 18:55:13 GMT
Last-Modified:Sun, 08 Jan 2012 18:42:34 GMT
Server:nginx/0.7.67
Via:1.1 varnish, 1.0 7a0b4b3db0cc0d369fe1d6981bfb646a.cloudfront.net:11180 (CloudFront), 1.0 6af08f4042ec142b4b760ca4cd62041d.cloudfront.net:11180 (CloudFront)
X-Amz-Cf-Id:2b205edf4e9ef000a31a0208ca68f4e15b746eb430cde2ba5cc4b7dff4ba41a76c24f43cf498be02,8d5863a42eea452f86831a02f3eb648b26fe07013b08b95950f15ef8ba275822e1eb3b7ed2550d01
X-Cache:Hit from cloudfront
X-Varnish:2130919357
Здесь нет упоминания о кодировке, и когда я просматриваю обычный файл, он не gzip'd.Поэтому мне интересно, что мне нужно сделать, чтобы Cloudfront запросил gzip-версию ресурса из моего приложения, чтобы он мог передать это клиенту.
Эта публикация говорит, что вам нужно вручную сжать и загрузить файл, но я не понимаю, почему это необходимо.Во-первых, это раздражает, а во-вторых, не будет ли он запрашивать файл так же, как мой браузер напрямую?Так почему бы просто не подать файл gzip'd, как это делается по умолчанию в моем приложении?
Любые советы по правильной работе gzip'ng были бы хорошими.Я хотел бы, чтобы мне не приходилось загружать файлы и загружать их вручную, если это возможно.