4

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

誰かが私の質問に答えてくれませんか。私はこれで少し迷子になりました。

  • 私はそれを間違えたかもしれませんが、人々はCSSとJSをgzipで圧縮しますね。
  • Djangoはいくつかのブラウザの互換性の問題のためにJSとCSSを圧縮しませんか?
  • 圧縮と縮小は同じことですか?

ありがとう。

4

4 に答える 4

16

CSSとJSは、本番システムでDjangoを経由しないようにする必要があります。これらを提供するためにApache(またはNginxなど)を構成する必要があります。そうすると、Djangoではなくそこでgzip圧縮を設定できるようになります。

いいえ、圧縮と縮小は同じものではありません。GZip圧縮は、サーバーが要求を処理するときにサーバーによって動的に実行され、ブラウザーはファイルを受信すると透過的に解凍します。ミニファイとは、ファイルからコメントと空白を削除し、場合によっては複数のファイルを1つに連結するプロセスです(つまり、それぞれの多くではなく、1つのcssと1つのjavascript)。これは、ファイルをサーバーにデプロイするときに行われます-Ashokが提案するようにdjango-compressによって、またはYUIコンプレッサーのような外部のものによって、ブラウザーは元のファイルを再構築しようとしません-これは不可能であり、不要です。

于 2010-10-19T13:23:05.463 に答える
4

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

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

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

于 2010-10-19T13:22:04.717 に答える
2

DanielRosemanの提案に従ってください。「CSSとJSは本番システムでDjangoを経由してはいけません」

Djangoを介してサービスを提供する場合は、django -compressordjango- compressを使用してcss、jsファイルを圧縮できます。

于 2010-10-19T13:11:59.073 に答える
2

みんな、ありがとう。

DjangoのGzipMiddlewareはCSSとJSを圧縮しているようです。

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

于 2010-10-20T07:44:01.167 に答える