gpt4 book ai didi

javascript - Service Worker 缓存在第一次加载后会破坏 PDF

转载 作者:行者123 更新时间:2023-11-29 20:47:01 25 4
gpt4 key购买 nike

我正在使用 sw-toolbox在我的一个客户网站上启用缓存。它通常运行良好,但由于某种原因它在第一次加载后会破坏 PDF。我怀疑当它将 PDF 保存到缓存时,它们会以某种方式损坏,但我仍然可以从损坏的页面将 PDF 保存到本地,它会正常打开。

这是我的服务人员:

((global) => {
// disable the service worker for post previews
global.addEventListener("fetch", (event) => {
if (event.request.url.match(/preview=true/)) {
return;
}
});

// ensure the service worker takes over as soon as possible
global.addEventListener("install", event => event.waitUntil(global.skipWaiting()));
global.addEventListener("activate", event => event.waitUntil(global.clients.claim()));

// set up the cache
global.toolbox.precache(["/", "/offline/"]);

global.toolbox.router.get("/wp-content/uploads/(.*)", toolbox.cacheFirst);
global.toolbox.router.get("/(.*)", toolbox.networkFirst, { NetworkTimeoutSeconds: 5 });

// redirect offline queries to offline page
self.toolbox.router.get("/(.*)", function (req, vals, opts) {
return toolbox.networkFirst(req, vals, opts).catch((error) => {
if (req.method === "GET" && req.headers.get("accept").includes("text/html")) {
return toolbox.cacheOnly(new Request("/offline/"), vals, opts);
}

throw error;
});
});
})(self);

我尝试过的一些事情:

  • 添加一个额外的路由 global.toolbox.router.get("/wp-content/uploads/(.*).pdf", toolbox.networkOnly);
  • 更改 /wp-content/uploads/(.*) 路由以重定向到标题为“no-cache”的 PDF URL

    global.toolbox.router.get("/wp-content/uploads/(.*)", function (req, vals, opts) {
    if (req.url.match(/\.pdf$/)) {
    const pdf_headers = new Headers();

    pdf_headers.append("Content-Type", "application/pdf");

    return toolbox.networkOnly(new Request(req.url, {
    method: "GET",
    headers: pdf_headers,
    mode: "same-origin",
    cache: "no-cache",
    }), vals, opts);
    } else {
    return toolbox.cacheFirst;
    }
    });
  • 以与 preview=true 相同的方式排除 PDF:

    global.addEventListener("fetch", (event) => {
    if (event.request.url.match(/preview=true/) || event.request.url.match(/\.pdf$/)) {
    return;
    }
    });

我没有想法,希望得到一些指导。此处提供测试页面:https://www.westmontparks.org/about-us/board-minutesbid-docs/

最佳答案

这可能与 this chrome bug 有关这会影响 Chrome 版本 71。

关于javascript - Service Worker 缓存在第一次加载后会破坏 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com