私は昨日サービス雇用者を使い始め、重要なjs/cssファイルだけをキャッシュするように設定しましたが、htmlリクエストもキャッシュします。サービスワーカーを使い始めた後、なぜhtmlをキャッシュするのですか? (またはクラウドフレアですか?)
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
これは、サービスワーカーです:
var CACHE_NAME = 'pokefaith-cache-v1.2';
var urlsToCache = [
'/bower_components/jquery/dist/jquery.min.js',
'https://fonts.googleapis.com/icon?family=Material+Icons',
'dependencies_/locals/material.min.js',
'bower_components/metisMenu/dist/metisMenu.min.js'
];
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) {
event.respondWith(
caches.match(event.request)
.then(function(response) {
// Cache hit - return response
if (response) {
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) {
// Check if we received a valid response
if(!response || response.status !== 200 || response.type !== 'basic') {
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) {
cache.put(event.request, responseToCache);
});
return response;
}
);
})
);
});
私はのみ、CSS/JSがキャッシュされるべきことをしたいが、私は、特定のページを数回リロードしていることを取得していますPHPでは、私はこれを持っています毎回自分のサイトが異なる応答を返すことは間違いないが、ブラウザは要求をキャッシュしている。
編集:ちょうど数日前に私は雲霧を活性化したので、キャッシュしているのは誰ですか?しかし、cloudflareはhtmlページをキャッシュしないと言いますが、どうなっていますか?
あなたのウェブサーバでは何が実行されていますか? nginx? apache?どのバージョン? –