0

JavaScriptファイルをロードするための私のコードは次のとおりです。

<script src="/path/to/app.js?1350550684711"></script>

ここで、1350550684711はサーバー側で生成されたタイムスタンプです。このキャッシュバスティングの方法は非常に人気があります(リンク1リンク2)。

ChromeとFirefoxでは、このメカニズムは機能します。理論的には、毎回異なるHTTPリソースが要求されるため、すべてのブラウザで機能するはずです。

それでも、キャッシュされたバージョンのJSファイルを使用しているユーザーのレポートが届いています。特にAppleSafariのもの。何か案が?

4

1 に答える 1

1

これは、影響を受ける Apple Safari が要素を含む html ページのキャッシュされたバージョンを再利用することを意味する可能性がある<scriptため、サーバーから新しいタイムスタンプを取得することは当然ありません。

私はここで推測していますが、それは HTTP キャッシュ関連のヘッダーの解釈が異なるためである可能性があり、デフォルト設定の違い、オフライン ブラウジング モードなどが原因である可能性があります。

その html ファイルに適用されるキャッシュ設定を確認します。

于 2012-10-19T04:55:19.417 に答える