通过本地副本使用 Workbox,无需 CDN
Using Workbox via a local copy, without a CDN
我有一个小型设备,可以在本地网络中使用 Nginx 为网页提供服务。我正在使用 Vue 开发网页,我需要一旦有人连接到服务器并访问该页面,在断开连接时,该页面需要正常工作
我目前正在使用 Workbox 插件,我得到了这个代码:
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
"/precache-manifest.b62cf508e2c3da8c27f2635f7aab384a.js"
);
问题是它去互联网下载那个文件,而我没有互联网连接。
我试过下载这个文件,但里面又要上网了。
有没有办法让它在离线环境中工作?
您可以按照 workbox-sw
docs 中的指导下载捆绑的 Workbox 运行时库的本地副本,并修改您的服务工作者脚本以使用这些库。
运行:
$ npx workbox-cli@4.3.1 copyLibraries /path/to/dir
从命令行将运行时的本地副本下载到指定目录(将 /path/to/dir
替换为所需位置)。
然后您可以修改服务工作者脚本,使其显示为:
importScripts("/path/to/dir/workbox-v4.3.1/workbox-sw.js");
workbox.setConfig({
modulePathPrefix: '/path/to/dir/workbox-v4.3.1/'
});
importScripts(
"/precache-manifest.b62cf508e2c3da8c27f2635f7aab384a.js"
);
我有一个小型设备,可以在本地网络中使用 Nginx 为网页提供服务。我正在使用 Vue 开发网页,我需要一旦有人连接到服务器并访问该页面,在断开连接时,该页面需要正常工作
我目前正在使用 Workbox 插件,我得到了这个代码:
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
"/precache-manifest.b62cf508e2c3da8c27f2635f7aab384a.js"
);
问题是它去互联网下载那个文件,而我没有互联网连接。
我试过下载这个文件,但里面又要上网了。
有没有办法让它在离线环境中工作?
您可以按照 workbox-sw
docs 中的指导下载捆绑的 Workbox 运行时库的本地副本,并修改您的服务工作者脚本以使用这些库。
运行:
$ npx workbox-cli@4.3.1 copyLibraries /path/to/dir
从命令行将运行时的本地副本下载到指定目录(将 /path/to/dir
替换为所需位置)。
然后您可以修改服务工作者脚本,使其显示为:
importScripts("/path/to/dir/workbox-v4.3.1/workbox-sw.js");
workbox.setConfig({
modulePathPrefix: '/path/to/dir/workbox-v4.3.1/'
});
importScripts(
"/precache-manifest.b62cf508e2c3da8c27f2635f7aab384a.js"
);