2016-12-10 9 views
0

私は昨日サービス雇用者を使い始め、重要な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ページをキャッシュしないと言いますが、どうなっていますか?

+0

あなたのウェブサーバでは何が実行されていますか? nginx? apache?どのバージョン? –

答えて

0

Cloudflareのファイルの詳細は、デフォルトでhereです。静的なhtmlファイルをCloudflare page rules経由でキャッシュすることは可能ですが、あなたがこれを説明しているところからはそうは考えにくいようです。

サービスワーカーファイルのCloudflareキャッシュが問題であるかどうかを確認するのは簡単です。ダッシュボードからログインし、ドメイン>概要>クイックアクション>開発モードを選択してください。

幸運

関連する問題