我使用assets_sync運行Rails 3.2。Rails 3.2 + Heroku + S3 + CloudFront:未提供gzip css js
我創建了一個gz版本的css和js。即使gzip請求的頭文件,放棄,CloudFront也不提供gzip版本。
我也試過config.gzip_compression = true
asset_sync.rb
,但CloudFront仍在提供未壓縮版本。我已確認我可以訪問ABC.cloudfront.net/XYZ.css.gz
我使用assets_sync運行Rails 3.2。Rails 3.2 + Heroku + S3 + CloudFront:未提供gzip css js
我創建了一個gz版本的css和js。即使gzip請求的頭文件,放棄,CloudFront也不提供gzip版本。
我也試過config.gzip_compression = true
asset_sync.rb
,但CloudFront仍在提供未壓縮版本。我已確認我可以訪問ABC.cloudfront.net/XYZ.css.gz
CloudFront發行版的來源是S3存儲桶嗎?如果是這樣,問題是S3不正確處理Accept-Encodings
標頭:https://github.com/rumblelabs/asset_sync/issues/153
該問題中概述了一些潛在的解決方案。您可以默認提供gzip文件,因爲大多數瀏覽器(不包括某些移動瀏覽器)會正確處理它,或者您可以嘗試使用solution outlined here。
另一種可能的解決方案是使用清漆緩存層爲您的CloudFront的分發自定義的由來:
互聯網 - > CloudFront的 - >光油 - > S3鬥
作爲一個請求進入CloudFront,如果尚未在CloudFront中緩存,則會將其轉發給Varnish。 Varnish將從S3 Bucket中獲取未壓縮的文件,按照頭文件的指示對其進行壓縮,然後將文件發送回CloudFront進行緩存。
config.gzip_compression = true實際上它是工作。它使用gzip版本替換文件,因此CloudFront將始終提供壓縮版本。您最有可能有緩存問題,請嘗試重命名您的文件。 (或者確保你的文件名和文件內容已被更改) – icem