截至 2021 年 8 月,GitHub 页面无法提供 COOP/COEP 标头。作为具有自定义标头的替代静态文件服务器,documentation。我不熟悉其他选项。
,
您可以通过 Service Worker(甚至在 Github Pages)设置所需的 COOP 和 COEP 标头,让 SharedArrayBuffer 工作。 This blogpost 将解释基础知识并向您展示如何操作。
本质上,这个想法是
- 第一次加载页面时,我们注册工作人员
- 然后我们重新加载页面
- 最后,既然工作人员正在控制一切,现在每个请求都将设置适当的标头
执行此操作的 Service Worker 必须包含类似于
// sw.js
self.addEventListener("fetch",function (event) {
if (event.request.cache === "only-if-cached" && event.request.mode !== "same-origin") {
return;
}
event.respondWith(
fetch(event.request)
.then(function (response) {
const newHeaders = new Headers(response.headers);
newHeaders.set("Cross-Origin-Embedder-Policy","require-corp");
newHeaders.set("Cross-Origin-Opener-Policy","same-origin");
const moddedResponse = new Response(response.body,{
status: response.status,statusText: response.statusText,headers: newHeaders,});
return moddedResponse;
})
.catch(function (e) {
console.error(e);
})
);
});
我刚刚创建了一个小型图书馆来简化它:coi-serviceworker。
,
看起来 Github 不打算添加自定义标题,在 2011 年发现了同样的问题,直到现在仍然没有这个 Github pages,HTTP headers
,
我尝试过 netlify,但他们对带宽有限制。
我使用 Cloudflare Workers 添加此类标头。他们不会在带宽方面限制你(这对庞大的 WebAssembly 文件很有好处),但他们对免费计划的请求数量有限制 - 每月 10,000,000 次请求。 https://developers.cloudflare.com/workers/platform/pricing
公平地说,这个限制通常很难在小型演示中达到(这是 Github Pages 通常的用途),之后价格也不是很高(每增加 100 万个请求 0.50 美元)。
>
本文链接:https://www.f2er.com/2422.html