2016-12-29 22 views
0

は、私は静的S3でホストされている2つのファイル、とのウェブサイトを持っていると言う:競合状態

  1. index.html
  2. script.js

私はこれらのファイルが更新される仕組みを持っています私が押すたびに遠隔地点からのgit pull経由で。しかし、私には、git pullがファイルを更新しようとしているので、サーバーに要求を出す可能性があると私は考えました。

  1. 部分的に更新さindex.htmlまたはscript.jsが返されます。それはページエラーの原因となる二つの問題を作成することができますようにこれがそうです。
  2. 古いindex.htmlがクライアントに返されます。その後、ファイルはサーバー上で更新されます。クライアントはscript.jsを要求し、新しいバージョンを返します。

これら2つの問題を緩和するための良い方法はありますか?

ファイルシステム操作がアトミックであり、ファイルが1回で更新されると仮定すると、最初の問題は問題ではないと思います。しかし、私は第二の問題に対処するものは見ていない。

答えて

0

#2を扱う1つの方法は、コンパイル時のscript.jsファイル名にプログラムでハッシュを追加するキャッシュ無効化メソッドを使用することです。 script-[whatever].jsが非マッチングindex.htmlを介して要求されたとき <script src="script.js">今すぐ<script src="script-79b1264ad3bc303fd.js">

なり、クライアントではなく、間違ったスクリプトよりも404を取得します。

これを展開する方法は、ビルドパイプラインによって異なります。あなたはGrunt/Gulp/etcを使っていますか?