2017-09-12 11 views
0

Apache(2.4)の書き換えルールを使用して圧縮ファイルを処理するのに問題があります。Apacheで圧縮されたgzipファイルが正常に動作しない

私のjavascriptバンドルプロセスは、作成する.jsごとに.gzファイルを生成します。私は、Apache a2enmod rewriteに書き換えモジュールを活性化し、このような.htacessファイルを設定しました:私は実行している問題がある

AddEncoding gzip .gz 
RewriteEngine on 

RewriteCond %{HTTP:Accept-encoding} gzip 
RewriteCond %{REQUEST_FILENAME}\.gz -s 
RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA] 

# Serve correct content types, and prevent mod_deflate double gzip. 
RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1] 

<FilesMatch ".+\.(js\.gz)$"> 
    Header append Content-Encoding gzip 
    Header append worked yes 
</FilesMatch> 

を:

  1. 最初の条件RewriteCond %{HTTP:Accept-encoding} gzipはtrueと評価されません。 ChromeデベロッパーツールでクライアントはこのヘッダをAccept-Encoding:gzip, deflate, brに送信しています(gzipをdeflate、brに追加しようとしましたが、動作しません)。
  2. これを上記の条件にしても、私はChromeのdev-toolsのヘッダContent-Encodingを見ることができません。
  3. 応答ヘッダーにはContent-lengthが表示されません。しかしそれは私が奇妙なことを見つけるTransfer-Encoding:chunkedと応答します。

これらは私のapache(私はそれらのいずれかをアクティブにしなかったため、彼らは私のUbuntuのdistの中でデフォルトで有効になっていると思う)

access_compat.load authz_user.load filter.load  rewrite.load 
alias.conf   autoindex.conf headers.load  setenvif.conf 
alias.load   autoindex.load mime.conf   setenvif.load 
auth_basic.load  deflate.conf  mime.load   status.conf 
authn_core.load  deflate.load  mpm_event.conf status.load 
authn_file.load  dir.conf   mpm_event.load 
authz_core.load  dir.load   negotiation.conf 
authz_host.load  env.load   negotiation.load 

答えて

0

あなたがそこに持っているコードで有効になっているモジュールです。正しく見えて、問題は他の場所にあることを示唆する私のコンピュータ上で正常に動作するようだ。私は考えることができるいくつかの可能性:

  • はおそらく、キャッシュサーバ/リバースプロキシを使用すると、ローカルホストまたは設定のすべてにテストしている場合を除き、自分自身は、それが私の最初の推測になります(物事をいじりか、そうでなければ「そこにISN知っていますそのようなサーバー)
  • おそらく、mod_deflateは干渉しています(コンピュータにインストールされていないため、テストできません)。メインサーバーの設定にアクセスできる場合は、LoadModule行をコメントアウトしてみてください。
  • .htaccessファイルを持ち、書き換えルールも使用するサブディレクトリがある場合、親ディレクトリの書き換えルールは実行されません。 (これが問題の場合は、RewriteOptions Inheritはこれらの特定の規則で動作するはずですが、これはチャンクエンコードの説明ではありません)。
  • ブラウザのキャッシュを強制的に更新するかキャッシュをクリアしますか?
+0

ありがとうございました。最後に、Accept-encodingヘッダーを取り除いていたdatapower(IBMプロキシ)を実行していると考えました。 –

関連する問題