2017-12-06 26 views
3

にIISにPWAの更新を展開した後、私は私が働いているangular5で書かれたPWAを持っています。 私は使用しています: "@ angular/cli": "1.6.0-rc.1" "@ angle/language-service": "^ 5.0.0"、「ハッシュ不一致」エラー生産

私は、ページを更新するために、アプリケーションのアップデートをユーザーに通知したいと思います。

  1. 私は、HTTPサーバが出力フォルダに聴いてローカルでコードを実行すると、それが正常に動作し、私は、ユーザーの更新の流れと確認メッセージが表示されます。

  2. はlocalhostとIISでローカルにアプリケーションを実行する場合、それはまた、正常に動作し、私は、ユーザーの更新の流れと確認メッセージが表示されます。

  3. 特定のドメイン(IISのアプリケーションにバインドされたホストファイルで編集されている)でローカルでアプリを実行すると、機能しません。

  4. 生産でアプリを実行している場合、それは動作しません。両方のポイント3および4では

、私は、私は(約束で) 不明なエラーの例外メッセージを取得意味「動作しない」と言う:ハッシュの不一致(cacheBustedFetchFromNetwork):

携帯電話で本物のものを確認しようとすると、更新の流れが表示されません。

私は再びページを更新した後、私は変更を確認し、エラーメッセージが消えたが(更新が行われている)

は、ここで更新を行うコードです:

export class AppComponent { 
title = 'app'; 
public isUserAuthenticated = false; 
constructor(private swUpdate: SwUpdate, 
private router: Router, 
private authService: AuthenticationService) { 
this.isUserAuthenticated = this.authService.isAuthenticated(); 
this.swUpdate.available.subscribe(event => {  
console.log('----Update available: current version is', event.current, 'available version is', event.available); 
if (event.current.hash !== event.available.hash) { 
const result = confirm(`----A new Version exists, do you want to update?----`); 
if (result) 
window.location.reload(); 
} 
}); 
this.swUpdate.activated.subscribe(event => { 
console.log('Update activated: old version was', event.previous, 'new version is', event.current); 
}); 
} 

ngOnInit() { 
this.checkForUpdate(); 
this.router.navigate(['/login']); 
} 

checkForUpdate() { 
console.log('---- checkForUpdate started----'); 
this.swUpdate.checkForUpdate() 
.then((res) => { 
console.log('---- checkForUpdate completed----'); 
console.log(`---- res: ${res}----`); 
}) 
.catch(err => { 
console.error(err); 
}) 
} 
activateUpdate() { 
console.log('---- activateUpdate started ----'); 
this.swUpdate.activateUpdate() 
.then(() => { 
console.log('---- activateUpdate completed----');   
window.location.reload(); 
}) 
.catch(err => { 
console.error(err); 
}) 
} 

たぶん私はよ私はそれを角度で展開しているドメインのいくつかの特定の構成が欠落していますか?

答えて

0

私はこれに走ったし、手動で自分のアプリケーションのキャッシュをクリアしなければなりませんでした。通常は私は単にクリアサイトのデータボタンを使用しますが、なんらかの理由でキャッシュストレージを開き、各アイテムを右クリックして削除する必要があります。次に、「デスクトップに追加」をやり直してください。

enter image description here

+0

いや、それは「それを動作させるために、」しなければならなかったものです。問題は、特定のドメインでは機能しないため、ローカルで動作する理由です – Avi

関連する問題