2

Я установил ведро Amazon S3 для своих статических активов и настроил CloudFront, чтобы указать на него. У меня есть приложение Rails 4 на Heroku.S3 обслуживает активы gzip. CloudFront этого не делает. Зачем?

Когда я установил config.action_controller.asset_host = "https://" + Figaro.env.FOG_DIRECTORY + ".s3.amazonaws.com", я получаю активы с gzip.

Когда я установил config.action_controller.asset_host = "http://" + Figaro.env.CLOUDFRONT_DIRECTORY + ".cloudfront.net", я не получаю gzip-активы. Почему нет?

+0

У меня аналогичная проблема: наши активы на S3 с помощью CloudFront. Если я попрошу актива (в curl), используя только URL-адрес, я получаю обновленную версию. Если я передаю - сжатый, я получаю его старую версию: это как если бы сжатая версия (предположительно созданная s3 как cloudfront не делает никакого gzipping) кэшируется где-то, и когда я передаю - сжатый, я получаю это , а не новый файл. С этим вы столкнулись? –

+0

@MaxWilliams Прошло несколько месяцев, но нет, я не помню, чтобы встретить это. В конце концов я заменил все свои активы версиями gzipped с тем же именем - вместо «application.css» и «application.css.gz», у меня есть «application.css» (переименованный gzip-файл). – smockle

+0

Моя проблема оказалась конфигурацией S3: она была настроена на «Custom Caching options», которая по причинам, которые меня избегают в данный момент, означала, что она не обслуживала нулевые ресурсы должным образом. Спасибо за ответ! –

ответ

2

UPDATE:

CloudFront теперь может сжимать файлы, даже если исходный сервер возвращает несжатый файл. Это относится только к specific file types, которые находятся между 1 КБ и 10 МБ. Полная информация доступна по исходной ссылке, которую я опубликовал ниже.


ОРИГИНАЛЬНЫЙ ОТВЕТ:

CloudFront не выполняет сжатие/декомпрессию по себе. Если у вас сжатые файлы на S3 и несжатые файлы в CloudFront, это скорее всего проблема кеширования, где CloudFront предоставляет более старую, несжатую версию файлов. Попробуйте invalidate эти файлы на CloudFront.

Вы можете узнать больше о CloudFront сжатия здесь:

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html

+1

Это проблема с кешированием. Я удалил дистрибутив CloudFront и создал новый с тем же ведром S3 и альтернативными именами доменов. Все работало после развертывания моего нового дистрибутива и обновления записей DNS. Благодаря! – smockle

+1

FWIW, с тех пор было изменено. Теперь вы можете включить CF для автоматического сжатия некоторых файлов: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html – Paddez

Смежные вопросы