2

を変更するとき、私は(角-CLIを使用して)私の角度のビルドに気づいngx-translateを使用して(私の翻訳を更新していない - 。いなくても、ブラウザからキャッシュを削除した後更新サービスワーカー資産が

angular-cli.jsonで、私は」 trueserviceWorkerを設定しまし。私はfalseにそれを切り替えてみましたし、更新翻訳ファイルが正しく表示されていました。だから、私は新しいビルドを生成するときに、サービス労働者は私の翻訳ファイルを更新していないと思います。

任意のアイデア私が保証する方法私の資産は変更されると更新されますか?angular-cliは、ビルの前に副作業員?私は彼らのdocumentationにそれに関する多くの情報が見つかりませんでした。

答えて

0

翻訳がキャッシュされている場合は、cacheNameをサービスワーカーのアクティブ化に変更する必要があります。

すなわち:私は資産を変更すると

var cacheName = 'myAppCache-3s'; 
var filesToCache = [ 
'/' 
    'index.html', 
    'scripts/hammer.min.js', 
    'images/play_white.svg', 
    'images/stop_white.svg', 
    'images/back_white.svg', 
    'images/forward_white.svg', 
    'images/sfondo.jpg', 
    'images/ic_refresh_white_24px.svg', 
    'scripts/meteo-zoom.js', 
    'scripts/meteosurf_200.js', 
    'scripts/jquery3-2-1.min.js', 
    'scripts/jqueryui1-12-1.min.js', 
    'styles/inline_01.css', 
    'styles/meteosurf_200.css', 
    'styles/jqueryui-smoothness.css', 
    'styles/images/ui-bg_glass_65_ffffff_1x400.png', 
    'styles/images/ui-icons_454545_256x240.png', 
    'images/icons/icon-64x64.png', 
]; 

、私は常に名前(すなわち:var cacheName = 'myAppCache-3t';)の最後に新しいバージョンを追加し、cacheNameを指定を変更します。

サービスワーカーが以前にインストールされていても、新しいバージョンのワーカーがリフレッシュまたはページロードで使用可能な場合、新しいバージョンはバックグラウンドにインストールされますが、まだアクティブ化されていません。以前のサービスワーカーを使用しているページが読み込まれなくなったときにのみアクティブ化されます。そのようなページがまだロードされていないとすぐに、新しいサービスワーカーがアクティブになります。

しかし、あなたはskipWaiting()機能でこの動作を強制することができます:うん

self.addEventListener('install', function(e) { 
    console.log('[ServiceWorker] Install'); 
    e.waitUntil(
    caches.open(cacheName).then(function(cache) { 
     console.log('[ServiceWorker] Caching app shell'); 
     return cache.addAll(filesToCache); 
    }).then(function() { 
     return self.skipWaiting(); 
    }) 
); 
}); 
+0

が、私は[角度-CLI](https://github.com/angular/angular-cli)を使用しています。ビルド中にコマンドを実行するコマンド(または変数を設定することができますか?)(サービスワーカーはビルド時に自動的に生成されます)が不思議です。 –

+0

angular-cliについてよく知らないけど、あなたのdistフォルダのどこかにworker-basicスクリプトがあるはずです。 –