0

キャッシュ制御用の html メタ タグ、mod の書き換え、および php ヘッダー タグ

<filesMatch ".(ico|gif|jpg|jpeg|png|flv|pdf)$">
  Header set Cache-Control "max-age=29030400"
</filesMatch>

<meta http-equiv="Cache-control" content="public">

header('Expires: Thu, 01-Jan-70 00:00:01 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');

どのキャッシュシステムが優れているのか、その理由は?? php、htaccess、またはメタタグ?

4

2 に答える 2

3

どっちもない。

最初のオプションだけが実際にブラウザーに画像をキャッシュするように指示します (ただし、mod_rewrite とは関係ありません)。

ただし、とにかく max-age を気にしません。ブラウザは画像をキャッシュするだけで十分です。手動で強制する必要はありません

于 2013-01-19T16:20:28.687 に答える
0

例がそれぞれの場合に異なるヘッダーと値を設定しているという事実は別として、ブラウザの結果は、どの方法を使用しても同じになります。主な違いは、それぞれが適用できるファイルの種類にあります。

  • タグは<meta>HTML ドキュメント内にのみ表示できます。したがって、HTML 以外のファイル (画像など) のキャッシュの有効性を制御するために使用することはできません。また、何かが HTML を処理してタグを見つけずにファイルをダウンロードする可能性があります。
  • PHPheader()関数は、PHP で動的に提供しているすべてのファイルに影響を与える可能性があります。これには、たとえば、プレーン テキストまたは XML ファイルが含まれる可能性がありますが、完全な形式でサーバーにアップロードした HTML ファイルは含まれない可能性があります。画像を含む静的ファイルを PHP 経由で渡すこともできますが、これはそれらを提供する非効率的な方法です。
  • ApacheHeaderディレクティブ ( の一部ではない)は、動的に生成されるかどうかに関係なく、Apache が提供する任意のmod_rewriteファイルに適用できます。これには、画像、静的 HTML、CSS、および JS に加えて、PHP で生成したあらゆるコンテンツを含めることができます。

Apache ディレクティブの唯一の欠点は、セットアップと Apache の構成ルールの経験によっては、データのさまざまなビットに対してより複雑なルールを維持するのが面倒な場合があることです。そのため、既に PHP で処理されているデータについて、header()よりきめ細かな制御が必要な場合は、関数を使用して何かを構築することができます。

于 2013-01-19T16:31:27.393 に答える