Web アプリの構築に関するチュートリアルに進むと、キャッシュを防ぐためにすべての .css および .js ファイルにクエリ文字列 "?v=1" を常に追加することが推奨されています。
これは「ベストプラクティス」ですか?
クエリ文字列は本番開発中にのみ使用する必要がありますか?
これで問題ないと思いますが、ベスト プラクティスに関する限り、それは本当に主観的なものです。
最も人気があり、最も広く使用されている CMS はこの方法を使用しているため、私はこの方法を採用すると考えています。
人々が理解していないのは、この方法は、このファイルをキャッシュできることをブラウザーに通知する最も簡単な方法ではなく、バージョンが変更された場合にのみ再キャッシュされるということです。
最初の質問への短い答え、はい。
2番目の質問「生産開発」に関しては、矛盾した表現です。本番と開発どっち?
サーバー側で何かをしている場合、ファイルが変更されたときのキャッシュを防ぐのは非常に簡単です:
PHP:
<script src="<?= $file.’?’.filemtime($file); ?>">
node.js
res.write('<script src="' + file + '?' + new Date(fs.statSync(file).mtime).getTime());
これにより、変更されたタイムスタンプがファイルに追加されるため、ファイルが変更された場合にのみキャッシュが防止されます。