アセット:プリコンパイルのレーキタスクを実行すると、アプリケーションのアセットのgzippedバージョンが作成されます。アセットパイプライン用のRailsガイドによれば、Webサーバー(私の場合はApache 2.2)を設定して、Webサーバーに作業を行わせる代わりに、これらの事前圧縮ファイルを提供することができます。アセットで準備されたgzippedアセットを処理するためのmod_deflateの設定方法:プリコンパイル
私が理解できないのは、mod_deflateがダブル圧縮されて提供される代わりに提供されるように設定する方法です。
私はhttpd.confの経由有効mod_deflateを持っている:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
をそして私は、レール上のコードを変換してきた公共/資産での.htaccessに行くために導く:
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
Header unset Last-Modified
Header unset ETag
FileETag None
# RFC says only cache for 1 year
ExpiresActive On
ExpiresDefault "access plus 1 year"
# Serve gzipped versions instead of requiring Apache to do the work
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
# without it, Content-Type will be "application/x-gzip"
<FilesMatch .*\.css.gz>
ForceType text/css
</FilesMatch>
<FilesMatch .*\.js.gz>
ForceType text/javascript
</FilesMatch>
どれでもどのようにこれを正しく設定するためのアイデア?
小型コメント - これは.htaccessファイルにない場合、それはそう-sは動作しません、ディレクトリセクションにする必要があります。 – lzap
また、 'text/javascript'の代わりに' application/javascript'を使うことをお勧めします。 * Scripting Media Types *については、[RFC4329](https://tools.ietf.org/html/rfc4329)を参照してください。 – tne
私は \t AddEncoding gzip .gz としていました。 –
Torsten