4

Webを検索したばかりですが、これに対する適切な答えが見つかりませんでした。

FFのGoogleページ速度拡張機能は、自分のWebサイト(PHP)にファイルをキャッシュするように指示しました。したがって、.htaccess特定の種類のファイルをキャッシュするために、(Webサイトのベータ領域で)更新しました。

ExpiresActive On
ExpiresDefault A0
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>

F5ベータ領域でコーディングしているときに、キャッシュ制御設定のために、たとえば、最新の.cssファイルを取得するためにを押す必要があることに気付きました。それは私にとって悪いことではありません...しかし、ユーザーはどうですか?

それで、サイトを更新したとき(またはファイルの有効期限が切れたとき)にすべてのファイルを(のみ)再ダウンロードし、そうでない場合はキャッシュを使用するようにブラウザーに指示できますか?

ブラウザに次のように伝えることができれば完璧です。「更新時刻より前のファイルはすべて古いので、再ダウンロードしてください。ただし、更新時刻より後のファイルは問題ありません。キャッシュを使用してください。」

4

2 に答える 2

6

これは、複雑な構成を必要としない、私が時々使用する簡単なアプローチです。

css または javascript ファイルを変更するときはいつでも、単純にダミー パラメータをマークアップに追加します。私は通常、現在の日付および/または時刻を使用します。例えば:

<link type="text/css" rel="stylesheet" href="site.css?120911" />

これにより、ファイルを更新する必要がある場合、ブラウザはファイルの新しいコピーをダウンロードするように強制されますが、バックグラウンドで一貫したファイル名を維持することもできます。

于 2011-12-10T05:01:50.810 に答える
2

パフォーマンス上の理由から、長時間前にサーバーにファイルを要求せずに、ファイルをキャッシュする必要があることをブラウザに示しました。

それがブラウザが行っていることです: サーバーから何も要求せずに、キャッシュからファイルを使用します。これは正しい動作です。


ファイルを変更した場合、ブラウザに強制的に再リクエストさせて新しいバージョンを取得させるには、その URL を変更するしかありません。

通常、これはファイル名にバージョン番号を組み込むことによって行われます。

http://www.yoursite.com/my-file-123.css

そして、ファイルが更新されると:

http://www.yoursite.com/my-file-124.css

URL が変更されたため、ブラウザのキャッシュにはファイルがなく、サーバーから新しいバージョンを要求します。


もちろん、これを手作業で行うのは簡単ではなく、エラーが発生しやすくなります...

したがって、一般的には(ソース管理から Web サイトのソースを抽出し、本番用にパッケージ化するビルド スクリプトがある場合)、このプロセスをサイトのビルド スクリプトに統合します。

于 2011-02-25T18:46:59.937 に答える