1

使用しているにもかかわらず、ブラウザによってキャッシュされる JavaScript ファイルに問題があります。

FileETag MTime Size

htaccess で変更時刻とサイズを確認し、最新バージョンかどうかを確認します。現在、次のようなJavaScriptファイルを含めています。

<script src="/code.js" type="text/javascript"></script>

次のようにファイル呼び出しに SVN リビジョン情報を追加しようとしました。

<script src="/code.js?svn=123" type="text/javascript"></script>

しかし、ファイル名でリビジョンを取得できず (任意の提案)、リビジョンを追加しても、HTML は Smarty によってプリコンパイルおよびキャッシュされているため、それを行うための防弾アプローチを見つけることができませんでした。

そのため、テンプレートにキャッシュ ブロックを使用しないことを考えましたが、このアプローチはまだ試していません。ファイルは 1 回だけコンパイルされるため、違いはありますか?

つまり、基本的には、ブラウザーに強制的に最新バージョンのファイルのみをキャッシュさせる方法についてのアイデアを集めているだけです。理想的な解決策は、FileETag とは異なり、実際に機能する htaccess を使用することです。これを使用すると、常に CTRL+F5 を押して最新バージョンを取得する必要があるためです。

4

1 に答える 1

2

ファイルパスにキャッシュバスターを追加するのが最善の方法です。?ここにあるようなアプローチでそれを行うか、次のようにファイルへのパスに追加できます。/static/123/code.js

その後、10 年先の expires ヘッダーを追加すれば準備完了です。あなたが持っている質問は、URLで番号を生成する方法です。おそらく、展開スクリプトを変更して、展開を行うときにその番号のバンプを置き換えることができます。そうすれば、バージョン番号を気にする必要はありません

別の考えは、js ファイルの md5 ハッシュを計算し、それをパスで使用することです。

于 2012-11-12T17:42:52.913 に答える