简体   繁体   English

如何通过 cdn 脚本注册 service worker。 如何使用外部 url 注册 service worker

[英]How to register a service worker via cdn script. How to register service worker using external url

I have a cdn script file that should handles push notification settings for client websites.我有一个 cdn 脚本文件,应该处理客户端网站的推送通知设置。

    // cdn sdk.js
    const register = await navigator.serviceWorker.register("https://my_cdn_address.com/sw.js", {
        scope: "/",
    });

but i got this error:但我得到了这个错误:

The origin of the provided scriptURL ('https://my_cdn_address.com') does not match the current origin ('https://my_client_website.com').

Just Create a local service-worker.js and put your script in it like this.只需创建一个本地 service-worker.js 并像这样将您的脚本放入其中。

importScripts( "https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js" ); importScripts("https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js");

Use a public CDN!使用公共 CDN!

if you don't know what a CDN (Content Delivery Network) is look here如果您不知道 CDN(内容分发网络)是什么,请看这里

there is 2 way to use public cdn:有两种使用公共 cdn 的方法:
1. unpkg.com 1. unpkg.com
unpkg is a fast, global content delivery network for everything on npm. unpkg 是一个快速的全球内容交付网络,适用于 npm 上的所有内容。 Use it to quickly and easily load any file from any package using a URL like:使用它可以使用如下 URL 快速轻松地从任何包中加载任何文件:
" unpkg.com/:package@:version/:file "
so you can just publish an sw.js file and use it by unpkg to deliver it.所以你可以只发布一个 sw.js 文件并通过 unpkg 使用它来交付它。

2. jsdelivr.com 2.jsdelivr.com
with this website you can:通过这个网站,您可以:
  • load any project hosted on npm加载任何托管在 npm 上的项目
  • load any GitHub release, commit, or branch加载任何 GitHub 发布、提交或分支
  • load any plugin from the WordPress.org plugins SVN repo从 WordPress.org 插件 SVN 仓库加载任何插件
for example you can load a package published in npm like this:例如,你可以像这样加载一个在npm中发布的包:
" https://cdn.jsdelivr.net/npm/package@version/file "
the intersting feature in jsdelivr is it can minfied your filed even if it's not exist jsdelivr 中有趣的功能是它可以缩小你的文件,即使它不存在
// add ".min" to any JS/CSS file to get a minified version
// if one doesn't exist, we'll generate it for you
" https://cdn.jsdelivr.net/npm/jquery@3.2.1/src/core.min.js "

if your code hosted in Github just do this:如果您的代码托管在 Github 中,只需执行以下操作:
" https://cdn.jsdelivr.net/gh/{username}/{repo@version}/{file} " 
example:例子:
https://cdn.jsdelivr.net/gh/jquery/jquery/dist/jquery.min.js

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM