首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sw-工具箱脚本评估失败

sw-工具箱脚本评估失败
EN

Stack Overflow用户
提问于 2018-02-09 04:54:18
回答 1查看 137关注 0票数 0

我正在摆弄服务人员,我想使用sw-toolbox,它可以支持快捷式路由。但是,当我使用这些行的任何版本导入它时:

代码语言:javascript
复制
importScripts('node_modules/sw-toolbox/sw-toolbox.js');
importScripts('../node_modules/sw-toolbox/sw-toolbox.js');
importScripts('/node_modules/sw-toolbox/sw-toolbox.js');

我得到以下错误:

代码语言:javascript
复制
A bad HTTP response code (404) was received when fetching the script.

:3000/node_modules/sw-toolbox/sw-toolbox.js Failed to load resource: net::ERR_INVALID_RESPONSE

到目前为止,我的服务工作者代码如下:

代码语言:javascript
复制
(global => {
    'use strict';

    //Load the sw-toolbox library
    importScripts('node_modules/sw-toolbox/sw-toolbox.js');


    //Ensure that our service worker takes control of the page asap
    global.addEventListener('install', event => event.waitUntil(global.skipWaiting()));
    global.addEventListener('activate', event => event.waitUntil(global.clients.claim()));
})(self);

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-09 05:40:40

我不确定这是否正确,因为我在sw-toolbox online上的教程中没有找到任何关于这方面的参考,但我找到了一个解决方法来导入它。

显然,服务工作者不像module.import那样工作,也就是说,相对于调用代码目录。所以我在我的服务器上添加了这个脚本:

代码语言:javascript
复制
  //serve the sw-toolbox
  server.get('/sw-toolbox.js', (req, res) => {
    res.setHeader('Cache-Control', 'no-cache');
    res.setHeader('content-type', 'text/javascript');
    let file = path.join(__dirname,  'node_modules', 'sw-toolbox', 'sw-toolbox.js');
    res.sendFile(file);
  });

然后从服务工作者那里调用它:

代码语言:javascript
复制
importScripts('/sw-toolbox.js');

有人能给我解释一下为什么这个能用而importScripts不能吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48694622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档