我在WordPress网站上使用服务人员,并且弄乱了从https://example.com/page到https://example.com/page/的重定向。
第一次加载后,转到不带斜杠的URL眨眼浏览器说“无法访问此站点”,而Firefox说“内容损坏”。
基于我对https://medium.com/@boopathi/service-workers-gotchas-44bec65eab3f#.hf3r4pbcs的阅读以及如何更改请求的标头?我想我必须检测何时响应为3xx并将重定向模式设置为手动。
但是,根据我的研究,我没有尝试过任何方法。我该如何解决?
当前服务工作者文件:
var cacheName = 'v14';
var urlsToCache = [
// list of URLs to precache
];
self.addEventListener('install', event => {
function onInstall(event) {
return caches.open(cacheName)
.then(cache => cache.addAll(urlsToCache));
}
event.waitUntil(
onInstall(event)
.then(() => self.skipWaiting())
);
});
self.addEventListener('activate', event => {
function onActivate (event) {
return caches.keys()
.then(cacheKeys => {
var oldCacheKeys = cacheKeys.filter(key => key.indexOf(cacheName) !== 0);
var deletePromises = oldCacheKeys.map(oldKey => caches.delete(oldKey));
return Promise.all(deletePromises);
}) …Run Code Online (Sandbox Code Playgroud) 当我在Chrome中刷新(或离线)时,我会收到"无法访问此站点",并且以下内容已登录到控制台:The FetchEvent for "http://localhost:8111/survey/174/deployment/193/answer/offline/attendee/240/" resulted in a network error response: a redirected response was used for a request whose redirect mode is not "follow"..当我在Firefox中刷新时,一切正常.有人可以解释为什么会这样吗?
这是我简化的SW.
importScripts("/static/js/libs/idb.js")
var CACHE_NAME = "upshot-cache-version3"
var urlsToCache = [...]
self.addEventListener("install", event => {
event.waitUntil(
caches
.open(CACHE_NAME)
.then(cache => {
urlsToCache.map(url => cache.add(url))
})
)
})
self.addEventListener("activate", event => {
clients.claim()
})
self.addEventListener('fetch', event => {
event.respondWith(
caches
.match(event.request)
.then(response => {
if (response) {
return response
}
var fetchRequest = event.request.clone()
return fetch(fetchRequest).then(response …Run Code Online (Sandbox Code Playgroud)