一部のブラウザー(特に、FirefoxとOpera)は、ブラウザーセッション間であっても、.cssファイルと.jsファイルのキャッシュされたコピーを非常に熱心に使用していることに気付きました。これにより、これらのファイルの1つを更新しても問題が発生しますが、ユーザーのブラウザーはキャッシュされたコピーを使い続けます。
問題は、ファイルが変更されたときにユーザーのブラウザーにファイルの再読み込みを強制する最もエレガントな方法は何ですか?
理想的には、ソリューションは、ページにアクセスするたびにブラウザにファイルをリロードさせません。私は自分の解決策を回答として投稿しますが、誰かがより良い解決策を持っているかどうか知りたいので、投票を決定させてください。
更新:
しばらくここでの議論を許可した後、私はJohn Millikinとda5idの提案が役立つことがわかりました。これには「自動バージョン管理」という用語があることがわかりました。
私の元の解決策とジョンの提案を組み合わせた新しい回答を以下に投稿しました。
SCdFによって提案された別のアイデアは、偽のクエリ文字列をファイルに追加することです。(偽のクエリ文字列がpiによって送信されたときにタイムスタンプを自動的に使用する一部のPythonコード)。ただし、ブラウザがクエリ文字列を含むファイルをキャッシュするかどうかについては、いくつかの議論があります。(ブラウザにファイルをキャッシュして、次回のアクセス時に使用することを忘れないでください。ファイルが変更された場合にのみ、再度ファイルをフェッチする必要があります。)
偽のクエリ文字列で何が起こるかは明らかではないので、私はその答えを受け入れません。
iframe.contentWindow.location.reload(true)
。stackoverflow.com/a/22429796/999120のメソッド(4)を参照してください。これは画像に関するものですが、同じことが当てはまります。
ExpiresActive On ExpiresDefault "modification"
。