javascript - 如何注册 Service Worker?

标签 javascript reactjs service-worker

我无法注册服务人员。该文件与 index.js 和 app.js 位于一起。我得到下一个错误

A bad HTTP response code (404) was received when fetching the script.

Failed to load resource: net::ERR_INVALID_RESPONSE

Registration failed TypeError: Failed to register a ServiceWorker: A 
bad HTTP response code (404) was received when fetching the script.

****** 
    if ('serviceWorker' in navigator) {
        window.addEventListener('`load`', () => {
        navigator.serviceWorker.register('serviceWorker.js', { scope:'./' })
            .then((registration) => {
                console.log('Registration completed successfully',registration);
            })
            .catch((error) => {
                console.log('Registration failed', error);
            })
     })}

最佳答案

它不仅必须与 index.js 和 app.js 并存,还必须位于应用程序的根目录中。所以如果它碰巧你的 index.js 或 app.js 在一个文件夹中说 js,它不会工作。只需将 serviceWorker.js 与 index.html 放在同一目录中,然后在服务器中运行即可

这是为什么? 我不是这方面的专家,但我知道服务人员习惯于在离线场景中为您的所有文件提供服务。如果你把它作为一个相对路径,映射到外面的所有其他文件会很棘手。

虽然这不是规则,但您可以通过某种方式找到将 serviceWorker 放在某个子文件夹中的方法,但我个人认为这不是最佳做法

关于javascript - 如何注册 Service Worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54939507/

相关文章:

javascript - 在循环内定义函数,i 的值未定义或不可预测

javascript - 语法错误: missing brackets after argument list

javascript - 将 Python 字符串与 Javascript 值结合起来

reactjs - 如何在祖 parent 中定义占位符/槽并从 child 中注入(inject)组件?

Chrome 中的 Angular 6 PWA 504 错误。基本href问题?

javascript - Html 弹出窗口将 PWA 图标添加到电话

javascript - if/else 运算符不变

node.js - 如何使用React指令主页上的代码

javascript - 从不断变化的 Action 创建者那里获取商店数据是常见的做法吗?

javascript - 了解 Service Worker 范围