2

今、私は圧縮方法を使用していません.bodyタグの間に以下を入れてください:

<link rel="stylesheet" type="text/css" href="Client/Css/all.css" />

PHP で ob_start("ob_gzhandler") を使用してこの css ファイルを圧縮することは可能ですか?

そしてどうやって?

4

5 に答える 5

4

これは通常、プログラムによって行われるのではなく、Web サーバーによって処理されます。

Apache の場合、使用できるmod_gzipまたはmod_deflateモジュールがあります。

IISには、使用できる設定があります。

于 2009-06-05T14:09:46.773 に答える
2

はい、できます (圧縮を実行する php スクリプトを介してファイルをパイプする場合)。しかし、単に出力を圧縮するだけではありません。圧縮された出力は、それをサポートするクライアントにのみ送信する必要があります。キャッシュ情報/要求を適切に処理する必要があります。等。

多くの場合、Web サーバーには、PHP スクリプトを必要とせずにすべてを実行するためのサポートが含まれています。Apache の場合は、mod_deflate と mod_mime (ディレクティブ AddEncoding) を見てください。

于 2009-06-05T14:09:55.633 に答える
1

新しいバージョンの apache Web サーバーを使用している場合は、次を .htaccess ファイルに追加します。


DeflateCompressionLevel 9  
SetOutputFilter DEFLATE  
BrowserMatch ^Mozilla/4 gzip-only-text/html  
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html  
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary  
Header append Vary User-Agent env=!dont-vary

于 2009-06-05T14:21:17.717 に答える
1

いくつかの方法があります。

ファイルを PHP として扱うように Web サーバーに指示し (名前を .php 拡張子に変更するのが最も簡単です)、次のように追加します。

<?php
  header("Content-type: text/css; charset=utf-8");
  ob_start("ob_gzhandler")
?>

頂点に。

同じことを行う PHP スクリプトを作成できますが、インラインではなく CSS ファイルを読み込みます。

どちらのオプションもキャッシングの問題につながります。正気を保つには、キャッシュ制御の HTTP ヘッダーにも注意する必要があります。

最良のオプションは、PHP のことは忘れて、Web サーバーを構成してこれらのファイルを圧縮することです (mod_deflate、mod_gzip などを使用)。

于 2009-06-05T14:11:08.253 に答える
0

何を達成しようとしていますか?コンポーネントを圧縮してクライアントのブラウザに送信し、ダウンロードを高速化する場合は、mod_defalte を使用する必要があります。それができない場合は、ここで詳細を見つけることができます: 「gzip php css」をグーグルで検索した最初の結果

編集:古いバージョンのApacheを使用していない限り、 mod_gzipではなくmod_deflate を使用する必要があることを指摘したいだけです。

于 2009-06-05T14:12:48.733 に答える