1

Google の PageSpeed ツールで推奨されているように、すべての CSS/JS がブラウザーによってキャッシュされるようにすることで、サイトの読み込み時間を部分的に短縮したいと考えています。ただし、更新されてキャッシュに古いコードが含まれるようになった場合は、訪問者が最新の CSS/JS ファイルを持っていることを確認したいと思います。

これまでの私の調査では、CSS/JS の URL の末尾に「?459454」のようなものを追加することが一般的です。しかし、それでは訪問者のブラウザが毎回 CSS/JS ファイルを再ダウンロードしなければならなくなるのではないでしょうか?

ブラウザによってキャッシュされるようにファイルを設定する方法はありますが、キャッシュされたファイルの更新されたバージョンをブラウザが確実に認識できるようにする方法はありますか?

4

4 に答える 4

3

Apache を使用している場合は、mod_pagespeed (symcbean で前述) を使用して、これを自動的に行うことができます。

ModPagespeedLoadFromFile ディレクティブを使用すると、リソースがディスク上で変更されたことを検出するとすぐに新しい URL が作成されるため、最適に機能しますが、それがなくても問題なく動作します (取得時に返されるキャッシュの有効期限を使用します)。書き換えるリソース)。

nginx を使用している場合は、ngx_pagespeed を使用できます。

IIS を使用している場合は、IISpeed を使用できますが、これは Google の製品ではなく、完全な機能セットかどうかはわかりません。

于 2013-04-04T18:53:06.720 に答える
2

バージョン番号は機能しますが、Web フレームワークまたはアセット ビルド スクリプトを使用して、ファイルのハッシュをファイル名に追加することもできます。

<script src="script-5054a101c8b164cbfa570d97fe23cc0d.js"></script>

そうすれば、HTML がこの新しいバージョンを反映するように変更されると、ブラウザはスクリプトの更新されたバージョンをダウンロードしてキャッシュします。

于 2013-03-25T21:32:21.347 に答える
1

おっしゃる通り、アセットの URL にクエリ文字列を追加しますが、内容が異なる場合にのみ変更するか、新しいバージョンをデプロイするときに変更します。

于 2013-03-25T21:31:19.697 に答える
0

CSS/JS URL の末尾に「?459454」のようなものを追加するのが一般的です。しかし、それでは訪問者のブラウザが毎回 CSS/JS ファイルを再ダウンロードしなければならなくなるのではないでしょうか?

いいえ、毎回ダウンロードを強制するわけではありませんが、キャッシュ可能なコンテンツのクエリ文字列を無視する中間プロキシがたくさんあります。他の多くのクールなトリックと一緒に飛ぶ)バージョン情報をパス/ファイル名に移動します。

.htaccess タイプのアクセス権しかない場合は、バージョン情報を取り除いてファイルに直接マップするか、スクリプト化された 404 リダイレクタを使用できます (ただし、キャッシュ リバース プロキシの背後にいる場合は、これはおそらく良い考えです)。 .

于 2013-03-25T21:37:59.057 に答える