2011-12-31 7 views
1

私は画像をキャッシュするPHPヘッダー()の方法を探していますが、PHP出力のHTMLコンテンツは探していません。キャッシュイメージ/ js/css never HTMLコンテンツ

<filesMatch "\.(ico|gif|jpg|jpeg|png|flv|avi|mov|mp4|mpeg|mpg|mp3|pdf|doc|css|js|html|bmp|js|css)$"> 
    Header set Cache-Control "max-age=86400000" 
</filesMatch> 

をそして私はどんなヘッダを行いません。今のところ 、私は私の.htaccessファイルに論文のラインを使用しています。

私は私のPHPファイルの先頭にこれらのようなヘッダを送信することを好むので、私はこれらを試してみました:私は、ブラウザを閉じている場合

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-cache"); 
header("Cache-Control: post-check=0, pre-check=0"); 
header("Pragma: no-cache"); 

しかし、これらのヘッダーの機能と、画像がブラウザにキャッシュされていませんサイトに戻ってください。 画像をキャッシュするにはブラウザに送信する必要はありますが、HTMLコンテンツはキャッシュしないでください。

EDIT: 申し訳ありませんが、私は再度チェックし、これらのヘッダーの機能は、ブラウザのキャッシュ画像ではなく、HTMLコンテンツを作るのに十分なされているような気がします。

答えて

0

一つの選択肢は、専用のPHPファイルからイメージをロードすることがあります

header('Content-Type: image/png'); 
header('Cache-control: private'); 
$img = imagecreatefrompng("example.png"); 
imagepng($img); 
imagedestroy($img); 

は、それぞれに別々のPHPファイルを持つ保存するために、あなたはURIにファイル名を渡すことができます。たとえば、画像へのパスは、PHPスクリプトで$ _GET ['filename']を使用してimage.php?filename = example.pngになります。

*イムわからない場合は、キャッシュ制御:プライベート本当に必要になるが、IVEはそれのようにうまくいけば役に立つヒント含まれています。

+0

いいえイメージを生成するPHPスクリプトファイルではなく、イメージファイルについて話していました。 – defacto

+0

それはあなたの問題をとにかく解決するかどうかわかりません、正直です。 imはブラウザで直接画像を見るのではなく、phpファイル内のHTMLマークアップに画像を含めることを話していると仮定しています。 – stackuser10210

+0

私はもっと明確にすべきでした、私はこれについて話していました: 'echo" ";'ブラウザに 'http:// www.mysite.com/images/myImage.png'ファイルをキャッシュさせたいです。実際、私が質問していたヘッダー機能は、罰金を働いています。 – defacto