0
ポリシートークンをURLパラメータとして使用するセキュアなCDNからアセットをキャッシュします。例えば のようなサイトにアクセスした場合、別のポリシートークンとKey-Pair-Idを持っていてもキャッシュからアセットを取得したいと考えています。例えば :私はサービスワーカーにこのコードを使用する場合www.cdn.com/image.png?Policy=CCCCC&Key-Pair-Id=DDDDD
workbox 3 - 実行時キャッシュのURLパラメータを無視する
:
workbox.routing.registerRoute(
/^(http(s)?:)?\/\/www\.cdn\.com.*/,
workbox.strategies.staleWhileRevalidate()
);
これは、キャッシュ内の応答を見つけ、ネットワークに行くことはありません。 URLのパラメータがないURL(Policy = CCCCC &のKey-Pair-Id = DDDDDが実際には有効なポリシーではない場合でも)と一致させたい。 www.cdn.com/image.png
が存在するかどうかを調べて、それを取得してください。
workbox.routing.registerRoute(
/^(http(s)?:)?\/\/www\.cdn\.com.*/,
({url, event}) => {
return caches.open(`${prefix}-${runtime}-${suffix}`).then((cache) => {
const customRequest = `${url.origin}${url.pathname}`;
return cache.match(customRequest).then((cacheRes) => {
if (cacheRes) {
return cacheRes;
}
return fetch(event.request).then((fetchRes) => {
cache.put(customRequest, fetchRes.clone());
return fetchRes;
});
});
});
}
);
: