簡體   English   中英

Rails 3.2 + Heroku + S3 + CloudFront:不提供gzip CSS js

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM