编辑:不幸的是,我现在无法再复现这个问题了。我猜可能只是我的浏览器出现了一些奇怪的故障,导致了这种行为。
如果我浪费了任何人的时间,我深感抱歉。
以下为原始问题。
我使用 create-react-app
创建了我的应用程序,它使用的是 webpack@5.64.4
。
我有一个 Web Worker,按照 https://webpack.js.org/guides/web-workers/ 上的指导进行加载。
export function createWorker() {
return new Worker(new URL('../worker/my-worker.ts', import.meta.url));
}
这个程序完美地运行,除了一个问题:即使工作线程已经在缓存中,当没有网络连接时它总是失败。这破坏了我的应用的离线体验。
在网络日志中,我可以看到我们总是发送一个网络请求来检查更新的工作线程块。服务器会回复304 NOT MODIFIED,之后它就能正常工作。然而,如果无法访问服务器,脚本就无法加载,我们就会失败。其他块从内存缓存中正确地提供,而不需要调用服务器。