58

特定のサーバーでホストされている web ページindex.htmlがあります。を指しexample.comましたexample.com/index.html。そのため、index.html に変更を加えて保存し、example.com を開こうとすると、変更が反映されません。Web ページがキャッシュされている理由。

次に、ページを手動で更新すると、キャッシュからではなく新しいコピーが読み込まれるため、正常に動作します。しかし、クライアントにそうするように頼むことはできません。クライアントはすべてが完璧であることを望んでいます。私の質問は、キャッシュからではなくサーバーから毎回ファイルをロードする方法に関するトリックまたはテクニックがあるということです。

PS: CSS、JS、および画像ファイルのトリック、つまり追加?v=1は知っていますが、index.html の場合はどうすればよいかわかりません。

どんな助けでも大歓迎です。ありがとう!

4

8 に答える 8

61

これで:

<meta http-equiv="expires" content="0">

コンテンツを「0」に設定すると、ブラウザーは常に Web サーバーからページをロードします。

于 2012-11-10T10:49:06.183 に答える
3

以下の方法を試すことができます。それは私のために働いた。

以下のコード行を .htaccess ファイルに追加してください。

<IfModule mod_headers.c>

    <FilesMatch "\.(html|php)$">
        Header set Cache-Control "no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires 0
    </FilesMatch>

    <FilesMatch "\.(ico|pdf|jpg|png|gif|js|css)$">
        Header set Cache-Control "max-age=172800, public, must-revalidate"
    </FilesMatch>

</IfModule>

上記のコードを使用すると、ブラウザーは .html ファイルをキャッシュしません。

于 2019-06-26T11:50:41.220 に答える
2

このメタ タグをヘッダーに追加すると、ほとんどのブラウザーで機能します (その場合、index.html はキャッシュされません)。

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

少し遅れましたが、他の誰かを助けるかもしれません!

于 2019-10-09T08:33:45.207 に答える
1

ファイルと共に追加のヘッダーを送信して、ファイルをキャッシュしてはならないことをクライアント (つまり、ブラウザー) に伝えることができます。Apache を入手した場合は、mod_expiresを見てください。PHP などのサーバー サイド スクリプト言語を使用している場合は、それを使用して解決することもできます。

于 2012-11-10T10:52:42.783 に答える
0

Murali Krishna Bellamkondaが投稿したように、メタタグを使用せず、htaccessを使用することを強くお勧めします。それは常に最善かつ最も安全で信頼できる方法です。システム全体を微調整して、キャッシュを長時間保持したり、特定の時間にファイルを更新したりできます。先に進んで、すべてのメタ タグを一度に試してみて、何が起こるか見てみましょう! (いいえ私はしません)キャッシュなしオプションについては、ExpiresDefault A5 を使用して Header set Cache-Control "max-age=5, immutable" を調べます。

于 2020-05-17T17:21:32.903 に答える