-1

HTML ファイルに新しいコンテンツを入力するたびにこのファイルが呼び出されるコードがありますが、ファイルのコンテンツを変更してページに移動すると、ページに古いコンテンツが表示され、新しいものではありません。それを行うページが2つだけあり、他のページはすべて静的です。

これらの 2 つのファイルに対して「非キャッシュ」を使用するにはどうすればよいですか?

私のコードは次のようになります:

<?php
$fp = fopen('file.html', 'w');
fwrite($fp, $content);
fclose($fp);
?>

そして、私が持っている別のfile.phpで

<html>
<head>...</head>
<body>
<some html>
<?php include(file.html); ?>
<some html>
</body>
</html>

ありがとう、

4

1 に答える 1

1

そのファイルに対して、キャッシュしないことを指定するヘッダーが送信されることを確認してください。次のようなヘッダー:

Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: Fri, 20 Mar 2014 00:00:00 GMT

これらのファイルが PHP ファイルの場合、先頭に次のような行を追加することでこれを行うことができます。

<?php
header('Cache-Control: max-age=0, no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: Fri, 20 Mar 2014 00:00:00 GMT');
?>

ここで複数のヘッダーを使用した理由は、キャッシュを制御する方法が複数あるためです。本当にキャッシュされないようにしたい場合は、すべてのフォームを無効にする必要があります (この方法)。

それらが純粋な HTML ファイルである場合は、この回答で説明されているように .htaccess マジックを使用する必要があります(htaccess を使用して各リクエストにヘッダーを追加します)。

明確にするために、これは次のように行われます。

  • file.html のディレクトリに .htaccess ファイルを作成します。
  • 次のコンテンツをこの .htaccess ファイルに入れます。

コード:

<files "file.html">
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Fri, 20 Mar 2014 00:00:00 GMT"
</Files>
于 2014-03-20T23:31:34.807 に答える