Ich führe Rails 3.2 mit Assets_sync.
Eine gz Version meiner CSS und JS wird erstellt. CloudFront liefert die gzip-Version nicht, obwohl die für gzip angeforderte Kopfzeile deflate.
Ich habe auch config.gzip_compression = true
in asset_sync.rb
ausprobiert, aber CloudFront liefert immer noch die unkomprimierte Version. Ich habe bestätigt, dass ich auf ABC.cloudfront.net/XYZ.css.gz
Ist der Ursprung Ihrer CloudFront-Distribution ein S3-Bucket? Wenn ja, besteht das Problem darin, dass S3 den Header Accept-Encodings
nicht richtig behandelt: Ссылка
In diesem Problem werden einige mögliche Lösungen beschrieben. Sie können Gzip-Dateien entweder standardmäßig bereitstellen, da die meisten Browser (mit Ausnahme einiger mobiler Browser) dies richtig handhaben, oder Sie versuchen die Lösung hier beschrieben .
Eine andere mögliche Lösung besteht darin, einen Varnish-Cache-Layer als benutzerdefinierten Ursprung für Ihre CloudFront-Distribution zu verwenden:
Internet - & gt; CloudFront - & gt; Lack - & gt; S3-Eimer
Wenn eine Anfrage bei CloudFront eingeht, wird sie an Varnish weitergeleitet, wenn sie noch nicht in CloudFront zwischengespeichert wurde. Varnish greift die unkomprimierte Datei aus dem S3-Bucket, komprimiert sie, wenn die Header diktieren, und sendet die Datei zum Zwischenspeichern an CloudFront zurück.
Tags und Links ruby-on-rails heroku amazon-s3 amazon-cloudfront gzip