![](/img/trans.png)
[英]How to serve gzip js and css files — Rails + CloudFront using Origin server (not S3)
[英]Rails 3.2 + Heroku + S3 + CloudFront: Not serving gzip css js
我正在使用asset_sync運行Rails 3.2。
創建了我的CSS和JS的GZ版本。 即使要求gzip,deflate的標頭,CloudFront也不提供gzip版本。
我也嘗試在asset_sync.rb
嘗試config.gzip_compression = true
,但是CloudFront仍在提供未壓縮的版本。 我已經確認可以訪問ABC.cloudfront.net/XYZ.css.gz
您的CloudFront分發的來源是S3存儲桶嗎? 如果是這樣,那么問題在於S3無法正確處理Accept-Encodings
標頭: https : //github.com/rumblelabs/asset_sync/issues/153
該問題中概述了一些潛在的解決方案。 您可以默認提供壓縮文件,因為大多數瀏覽器(某些移動瀏覽器除外)都可以正確處理該文件,也可以嘗試此處概述的解決方案 。
另一個可能的解決方案是使用Varnish緩存層作為CloudFront分配的自定義來源:
互聯網-> CloudFront->清漆-> S3桶
當向CloudFront發出請求時,如果尚未將其緩存到CloudFront中,它將被轉發到Varnish。 Varnish將從S3存儲桶中獲取未壓縮的文件,按照標頭指示對其進行壓縮,然后將文件發送回CloudFront進行緩存。
您是否為應用程序設置了heroku config:add ASSET_SYNC_GZIP_COMPRESSION=true
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.