私は、Chromeがシステム障害でローカルキャッシュを無効にしないようにするために考えていたすべてを試して、空になった。同じ質問をしている他の人がいくつかいますが、私は答えを見ませんでした。
これは私がこの作業をしたことであり、他の人が同じ問題を抱えている場合は、必要な回避策かもしれません。
イメージをキャッシュするサービスワーカーを追加しました。以下のコードはまだ完璧ではありませんが、誰かのための出発場所でなければなりません...(参考、5分前にこのことを学んだので、
レスポンスの種類が「cors」のものはすべてキャッシュして、リモートサーバーからの画像のみをキャッシュします。これが機能するには、画像をhttps経由で読み込む必要があります。
撮影
(ほとんど)から:https://developers.google.com/web/fundamentals/getting-started/primers/service-workers
var CACHE_NAME = 'shine_cache';
var urlsToCache = [
'/'
];
self.addEventListener('install', function(event) {
// Perform install steps
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
console.log('Opened cache');
return cache.addAll(urlsToCache);
})
);
});
self.addEventListener('fetch', function(event) {
//console.log('Handling fetch event for', event.request);
if (event.request.method == 'POST') {
//console.log("Skipping POST");
event.respondWith(fetch(event.request));
return;
}
if (event.request.headers.get('Accept').indexOf('image') !== -1) {
event.respondWith(
caches.match(event.request)
.then(function(response) {
// Cache hit - return response
if (response) {
console.log("Returning from cache.", event.request);
return response;
}
// IMPORTANT: Clone the request. A request is a stream and
// can only be consumed once. Since we are consuming this
// once by cache and once by the browser for fetch, we need
// to clone the response.
var fetchRequest = event.request.clone();
return fetch(fetchRequest).then(
function(response) {
console.log("Have a response.", response);
// Check if we received a valid response
if(!response || response.status !== 200 || response.type !== 'cors') {
return response;
}
// IMPORTANT: Clone the response. A response is a stream
// and because we want the browser to consume the response
// as well as the cache consuming the response, we need
// to clone it so we have two streams.
var responseToCache = response.clone();
caches.open(CACHE_NAME)
.then(function(cache) {
console.log("Caching response", event.request);
cache.put(event.request, responseToCache);
});
return response;
}
);
})
);
}
});
'クロムん:// cache'にページが異常終了後に画像のURLが含まれているの?クロムは実際にこれらの画像をリクエストしていますか?キャッシュ関連のHTTPヘッダーがリクエストに含まれている場合 –
chrome://キャッシュに異常終了後のページURLが含まれていません。しかし、電源を紛失した後でさえ...タスクマネージャを使ってChromeを強制終了しても、キャッシュを失うことはありません。 fsutilは私のCドライブが汚れていないことを示しています。キャッシュインデックスが破損する可能性がありますか?さて、きれいにChromeをシャットダウンし、電源を切って再起動してください...まだ画像を取得することを拒否します。それでも、Chromeが起動していても「スタート - >シャットダウン」し、キャッシュされた画像は問題ありません。タスクマネージャからChromeを強制終了しても、キャッシュは無効になりません。 –