2009-06-05 15 views
2

は今、私は任意の圧縮方法を利用していないよ、ただbodyタグの間で以下に置く:gzipをPHPのcss/jsファイルに使用するには?

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

それは、このCSSファイルを圧縮するためにPHPで(「ob_gzhandlerをする」)のob_start使用することはできますか?

どのようにですか?これは、一般的にプログラム的に行われていない

答えて

4

、それはApacheのWebサーバ

によって処理され、あなたが使用することができますmod_gzipまたはmod_deflateモジュールがあります。

IIS has settingsを使用できます。

+1

は、彼が使用するために起こっているのmod_deflate、mod_gzipではありません。 – jacobangel

+0

私は理解していない:gzipは収縮以上に使用され、なぜMod_Gzipはmod_deflateよりも古いのですか? – omg

2

はい(圧縮を実行するPHPスクリプトでファイルをパイプするとき)可能です。しかし、単純に出力を圧縮するよりもはるかに多くのことがあります。それをサポートするクライアントにのみ圧縮出力を送信する必要があります。キャッシング情報/要求を適切に処理する必要があります。その他

あなたのウェブサーバには、PHPスクリプトを必要とせずにすべてのことをサポートすることがかなりの場合があります。 Apacheの場合、mod_deflateとmod_mime(AddEncoding命令)を見てください。

+0

また、mod_expires – Piskvor

1

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

あなたは、PHPのファイルを扱う(拡張子.phpを持つように名前を変更する最も簡単でしょう)、その後、追加するWebサーバを言うことができる:

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

トップに。

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

このオプションを両方とも使用すると、キャッシュの問題が発生します。キャッシュコントロールのHTTPヘッダーも気にする必要があります。

最良のオプションは、PHPを忘れ、ちょうど

+0

文字エンコード宣言を忘れないでください。 – Gumbo

+0

非常にまれではありません。非常にまれなエッジケースでは、使用される可能性のある文字エンコーディングのサブセットであるプレーンASCIIを使用しません。 – Quentin

0

あなたが達成しようとしているのは何(mod_deflateを、mod_gzipのまたは類似を使用して)それらのファイルを圧縮するためのウェブサーバを構成することでしょうか?より速くダウンロードされるようにコンポーネントを縮小してクライアントブラウザに送る場合は、mod_defalteを使用する必要があります。それはオプションではありません場合は、ここで詳細を見つけることができます:first result from googling "gzip php css"

EDITを:私はちょうどあなたは、Apacheの古いバージョンを使用している場合を除き、あなたはmod_deflateない mod_gzipのを使用する必要があることを指摘したいと思います。

1

あなたの.htaccessファイルに以下を追加Apache Webサーバの新しいバージョンを使用している場合:


彼は、古いバージョンを使っている場合を除き
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 

関連する問題