2011-09-06 4 views
17

私は、動的に生成され、ウェブサイトやフォーラムに埋め込まれる画像(PNG)を持っています。画像が非常に混雑したページに投稿されると、頻繁に変更されないもののためにサービスする接続がたくさんあります。ブラウザにキャッシュする時間を教えたいと思います。ブラウザにキャッシュされることを確認するPNGイメージ出力のヘッダー?

どのようなヘッダーが必要ですか?現在、私は持っています:

Cache-Control: max-age=86400 
Content-Type: image/png 

ブラウザは画像をキャッシュしていないようです(約20-30kbです)。それ以外に必要なものは何ですか?

編集: これは、例えば画像であり、私はすでに.png拡張子を持つURLを持っている: https://images.carspending.com/sigimg/5734/user/honda-accord-2-4i-executive-tourer_medium.png

+1

実際にイメージのように見えるURLがあれば、ブラウザーがより簡単になります(例えば、http://ではなくhttp:// www.example.com/images/myimage.png')。 www.example.com/my_script.php?image = 93895') – NullUserException

+0

私はすでにそれを編集した投稿をしています。 – ddinchev

答えて

28

だった働いた最後の事:埋め込ま1でページをロードする際に

header('Pragma: public'); 
header('Cache-Control: max-age=86400'); 
header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400)); 
header('Content-Type: image/png'); 

今、ブラウザが画像の要求を行いません。

+0

これがなぜこの質問に答えるのか説明できますか? – Todd

+0

それは答えられた(6年前)それは問題を解決しました。これらのヘッダーをすべて持つpngリソースが外部ページにロードされた場合、適切にキャッシュされます。それはあなたのために働いていないのですか? – ddinchev

7

はあなたにもなるように公共追加していることを確認してください:

header('Cache-Control: max-age=86400, public'); 

Read this alsoは、非常に便利です。

+2

正しいものは次のとおりです。 header( 'Pragma:public'); ヘッダー( 'Cache-Control:max-age = 86400'); あなたは私にアイデアを与えました – ddinchev

+0

@Veseliq:私はうれしいです。私はPHPデベロッパーではないので、WILDの推測をしました;)Expiresの日付をGMT形式に設定すると良いです。さもなければ、それはどちらもうまくいきませんでした。 – Icarus

2

Expiresヘッダーが役立ちます。

header('Expires: '. gmdate('D, d M Y H:i:s \G\M\T', time() + 86400)); 
+0

これはプラグマとキャッシュコントロールと一緒にこれを解決しました。 – ddinchev

関連する問題