我試圖用javascript創建離線網頁服務工作者。 在我的情況下有我的網址:www.xxx.xx/home。 如果我打電話給像www.xxx.xx/index.php這樣的頁面,我可以將index.php放入脫機緩存中,並且它可以脫機使用。 但/ home(內部路由到index.php mod_rewrite/apache2.4)被存儲爲密鑰,但離線後iam不可用。離線網站重定向uri作爲根頁面
var CACHE_NAME = 'cache-v1';
var urlsToCache = ['/', '/home', '/index.php'];
self.addEventListener('install', function(event) {
// Perform install steps
console.log("Install Cache");
event.waitUntil(
caches.open(CACHE_NAME).then(function(cache) {
console.log(urlsToCache.length + " files installed successfully");
return cache.addAll(urlsToCache);
})
);
});
像這樣的東西,index.php可以叫脫機但不是xxx.xx/home。 它應該如何緩存重定向/重寫的uri?
是這樣的:
this.addEventListener('activate', function(event) {
event.waitUntil(
caches.open(CACHE_NAME).then(function(cache) {
cache.keys().then(function(keys) {
keys.forEach(function(request, index, array) {
console.log(index + " Url: " + request.url + " follow: " + request.redirect + " mode: " + request.cache);
});
});
})
);
});
導致
serviceworker.js:37 0 URL:--httpsurl - /如下:遵循模式:未定義
serviceworker.js:37 1網址:--httpsurl -/home關注:follow模式:undefined
serviceworker.js:37 2 Url:--httpsurl -/index.php後續操作:follow mode:undefined
在Chrome和Firefox中測試(最新版本)
拼寫並刪除問候和謝謝。 – Jolta
你能列出緩存鍵嗎?要查看他們是否沒有得到存儲,或者如果存儲的值不正確... – Salketer
我已經添加了它。根網址現在可用,不知道爲什麼。重定向的網址處於離線狀態。 – Enchanter