google.codes minifyを使用して、cssファイルとjsファイルをその場で縮小します。また、すべてのcssファイルとjsファイルでdeflateを使用するように.htaccessを設定しました。これは、一部のjsファイル(shadowboxやtinymceなど)がコード内の他のjsファイルを参照している理由です。だから私はapachedeflateで圧縮していて、minifyはgzipでいくつかのjsファイルとcssファイルを圧縮しています-これを行うことでオーバーヘッドを作成しています-最初にgzip(minify)、次にzlib(deflate)が再び実行されます。または、apache deflateは、ヘッダーにminifyによって設定された属性を持つすでにgzip圧縮されたファイルを無視します。誰かこれで何か経験がありますか?
3 に答える
縮小 + 収縮 / gzip は一緒にうまく機能します。
私はその目的を達成するために mod の書き換えを使用します。すべての css/js ファイルを 2 つのバージョン (オリジナル バージョンと .css.gz/.js.gz バージョン) に事前にビルドしました。
ブラウザは .js/.css リクエストを送信するだけで、サーバーは .js.gz/.css.gz の存在をチェックし、特定の条件が一致した場合に gzip されたコンテンツを返します。
したがって、js/css ファイルが js からオンザフライで読み込まれることは問題ではありません (たとえば、shadowbox や tinymce)。
基本的に、このように
RewriteEngine On
RewriteBase /
#Check for browser's Accept-Encoding,
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"
#check file name is endswith css or js
RewriteCond %{REQUEST_FILENAME} "\.(css|js)$"
#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s
#rewrite it to .js.gz or .css.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
#update some response header
<FilesMatch "\.js\.gz$">
AddEncoding gzip .gz
ForceType "text/javascript"
</FilesMatch>
<FilesMatch "\.css\.gz$">
AddEncoding gzip .gz
ForceType "text/css"
</FilesMatch>
gzip は zlib 圧縮アルゴリズムを使用しており、ほとんどのバイト シーケンスは 2 回目はうまく圧縮されません。
Minifyは Apache 経由でファイルを提供しないため、二重エンコードはありません。
DEFLATE フィルターを使用すると、Apache は要求されたファイルを毎回オンザフライで gzip します。Miniify は、最初のリクエストでファイルを gzip し、その後のリクエストのために事前に gzip されたキャッシュ バージョンを送信します。
PHP ベースであるため、パフォーマンスと引き換えに柔軟性とメンテナンスが容易になりますが、その前にプロキシ キャッシュを配置すると、S.Mark の構成と同様のパフォーマンスが得られます。