DjangoでJavaScriptおよびCSSファイルをgzipできますか?

compression django gzip python static-files
DjangoでJavaScriptおよびCSSファイルをgzipできますか?

Webアプリケーションのプロファイリングを試みましたが、報告されたボトルネックの1つはgzip圧縮の欠如でした。 私はDjangoにgzipミドルウェアをインストールし、少しブーストを得ましたが、新しいレポートはそれがHTMLファイルのみをgzipしていることを示しています。 Djangoによって処理されるコンテンツ。 ミドルウェアをCSSやJSにgzip /ハック/フォース/作成する方法はありますか?

誰かが下の私の質問に答えてください。 これで少し迷子になりました。

  • 私は間違っているかもしれませんが、人々はCSSとJSをgzipします、
    彼らは違いますか?

  • Djangoはブラウザーの互換性のためにJSとCSSを圧縮しませんか
    問題?

  • 圧縮と縮小は同じものですか?

ありがとう。

  4  2


ベストアンサー

CSSとJSは、実稼働システムでDjangoを使用する必要があります。 これらを提供するには、Apache(またはNginxなど)を設定する必要があります。そうすると、Djangoではなく、そこでgzip圧縮を設定できるようになります。

いいえ、圧縮と縮小は同じものではありません。 GZip圧縮は、リクエストを処理するときにサーバーによって動的に実行され、ブラウザはファイルを受信すると透過的にファイルを解凍します。 縮小とは、ファイルからコメントと空白を削除するプロセスであり、複数のファイルを1つに連結することもあります(つまり、多数のファイルではなく、1つのcssと1つのjavascript)。 これは、ファイルをサーバーにデプロイするときに実行されます-Ashokが示唆するようにdjango-compressによって、またはhttp://developer.yahoo.com/yui/compressor/[YUIコンプレッサー]のような外部によって、ブラウザーは元のファイルを再構築しようとしないでください-それは不可能であり、不必要です。

15


djangoアプリケーションをHTTPリバースプロキシの背後に配置することを検討する必要があります。

djangoアプリケーションのリバースプロキシとして機能するようにapacheを設定できますが、このシナリオでは多くの人がnginxまたはlighttpdの使用を好むようです。

HTTPリバースプロキシは、基本的に、Webアプリケーションの直前にセットアップされたプロキシです。 ブラウザはリバースプロキシからリクエストを作成し、リバースプロキシはリクエストをWebアプリケーションに転送します。 リバースプロキシは、sslの処理、すべての応答のgzip圧縮の処理、静的ファイルの提供の処理など、多くの興味深いことも実行できます。

4


ダニエルローズマンの提案「CSSとJSが運用システムでDjangoを通過しないようにする」に従ってください。

Django経由で提供する場合は、https://github.com/mintchaos/django_compressor [django-compressor]、http://github.com/paltman/django-compress [django-compress]を使用してcss、jsファイルを圧縮できます。 ]

2


みんな、ありがとう。

DjangoのGzipMiddlewareは、CSSとJSを* DOES *圧縮するようです。

Firebug用のGoogleのPage Speedプラグインを使用してページのプロファイルを作成していましたが、ローカルキャッシュ内のCSSとJSの古いコピー(gzip圧縮されていないバージョン)に基づいてレポートを生成していたようです。 これらのコピーは、Gzipミドルウェアを有効にする前からありました。 キャッシュをフラッシュしましたが、レポートはまったく異なる結果を示したようです。

1


タイトルとURLをコピーしました