1. ホーム
  2. caching

[解決済み] Angular 2のサイトでブラウザキャッシュを防ぐには?

2022-06-22 19:32:04

質問

現在、定期的に更新される新しいプロジェクトに取り組んでおり、あるクライアントによって毎日使用されています。このプロジェクトは angular 2 を使用して開発されていますが、キャッシュの問題に直面しています。つまり、クライアントが自分のマシンで最新の変更を見ることができないのです。

主に js ファイル用の html/css ファイルは、大きな問題を与えることなく適切に更新されるようです。

どのように解決するのですか?

angular-cli はこの問題を解決するために --output-hashing フラグを ビルド コマンド (バージョン 6/7, それ以降のバージョンでは ここで ). 使用例です。

ng build --output-hashing=all

バンドルとツリーシェイク には、その詳細と背景が書かれています。実行 ng help build を実行すると、フラグを文書化します。

--output-hashing=none|all|media|bundles (String)

Define the output filename cache-busting hashing mode.
aliases: -oh <value>, --outputHashing <value>

のユーザにのみ適用されますが angular-cli を使用するユーザーにしか適用できませんが、これは見事に動作し、コードの変更やツールの追加を必要としません。

更新

多くのコメントで 役に立つ 正しく は、この回答がハッシュを追加していることを指摘した。 .js ファイルにはハッシュを追加しますが index.html . したがって index.html の後にキャッシュされたまま ng build キャッシュが .js ファイルを破壊します。

この時点では、私は すべてのブラウザで Web ページのキャッシュを制御するにはどうしたらよいでしょうか。