この質問は、私の以前の投稿「 CSS loading issue with Android ICS 」に関連しています。
Android ICS のデフォルトおよび Dolphin browser による CSS および JS レンダリングの問題に直面していた場所。このコンテンツは、( Apache2 + FastCGI + Python ) セットアップを使用するサーバーのバックエンド エンジンから提供されます。
考えられる問題を検索しているときに、問題の主な原因は、サーバーからコンテンツが圧縮された形式で送信されていないことであることがわかりました。
したがって、サンプルの応答ヘッダーは次のようになります。
Connection Keep-Alive
Content-Encoding gzip
Content-Length 5997
Content-Type text/css
Date Sun, 29 Jul 2012 14:29:08 GMT
Keep-Alive timeout=15, max=100
Server Apache (Ubuntu)
Vary Accept-Encoding
同じコンテンツがフラット ファイルから提供される場合。応答ヘッダーは次のようになります。これは、すべてのブラウザで適切にレンダリングされます。
Accept-Ranges bytes
Connection Keep-Alive
Content-Encoding gzip
Content-Length 1430
Content-Type text/css
Date Sun, 29 Jul 2012 14:28:57 GMT
Etag "a9c06-176d-4c5e693c2a6c0"
Keep-Alive timeout=15, max=100
Last-Modified Sat, 28 Jul 2012 16:46:59 GMT
Server Apache (Ubuntu)
Vary Accept-Encoding
Android ICS のデフォルトおよび Dolphin Browser では、コンテンツ (特に css、js コンテンツ) をレンダリングできません。他のすべてのブラウザで動作します。
しかし、本質的に、圧縮されていないデータが送信されるため、バックエンド エンジンにもいくつかの問題があります。応答ヘッダーには、注目すべき興味深い点がいくつかあります。
- 応答ヘッダーには、「Content-Encoding gzip」というフィールドが含まれています
- ただし、Content-Length は、圧縮されていないバージョンのリソースの長さを示します。
この問題を解決するために、問題の原因である可能性があると思われる場所で、 Architecture のいくつかの小さな変更を試みました。fastCGI を CGIに置き換えることで問題が解決し、データが圧縮形式で送信されるようになりました。
問題
問題は解決しましたが、私は間違いなくfastCGI を使いたいです。そのため、問題を解決できる構成変更の可能性を探しています。サーバーのApache設定で次の手配を行いました:
- 利用可能な Apache モジュールからdeflate モジュールを有効にします。
私の
/etc/apache2/mods-enabled/deflate.conf
ファイルには次のテキストがあります:<IfModule mod_deflate.c> # these are known to be safe with MSIE 6 AddOutputFilterByType DEFLATE text/html text/plain text/xml # everything else may cause problems with MSIE 6 AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript AddOutputFilterByType DEFLATE application/rss+xml </IfModule>
ファイル内のスクリプトで fastCGI を機能させるために、次の行があり
/etc/apache2/sites-enabled/default
ます。<Files my_script_name.py> SetHandler fastcgi-script </Files> FastCgiServer /path_to_script/my_script_name.py -processes 4 -socket /tmp/my_script_name.sock
質問
さまざまな構成変更を試みましたが、どれも私の問題を解決していないようです。FastCGI で圧縮を有効にするためにここに欠けているものはありますか?