我的个人博客

使用Github和jsDelivr轻松在网页中嵌入脚本

Photo of bulb artwork
Published on
/4 mins read/---

问题

你想在网页上添加一个功能,但不想修改页面上现有的脚本,因为配置、更改和删除太复杂。 你只需要这个功能一段时间。

如果你有同样的需求,那么这里有一个我认为你应该采用的简单解决方案。

解决方案

  • Github上托管你的脚本(也可以包含样式)。

只需在Github上创建一个公开仓库,将你的脚本和样式推送到那里。 (记得将其设为公开,这样才能被嵌入。)

jsDelivr是一个简单的工具,用作任何npm包、Github仓库或WordPress插件的CDN

使用说明可在jsDelivr的主页上找到。以下是如何将其与Github仓库一起使用:

https://cdn.jsdelivr.net/gh/{user}/{repo}/{directory}/{file}

这是通过jsDelivr托管的Github上任何文件的脚本/样式URL的结构:

  • {user}:你在Github上的用户名组织
  • {repo}仓库名称
  • {directory}文件夹名称(可选),因为你的文件可以放在仓库的根目录中
  • {file}:文件名,*.js*.css

例如:

这是我的一个公开仓库:Minimog badges。 我在其中托管了2个文件,1个Javascript文件和1个CSS文件。

minimog-badges-repo

所以通过jsDelivr托管的这两个文件的URL将是:

https://cdn.jsdelivr.net/gh/Insights-Labs/minimog-menu-badges/style-v1.css

和:

https://cdn.jsdelivr.net/gh/Insights-Labs/minimog-badges/main-v3.js

现在只需使用link标签将它们嵌入到你的页面中:

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/gh/Insights-Labs/minimog-menu-badges/style-v1.css"
/>

以及script标签:

<script src="https://cdn.jsdelivr.net/gh/Insights-Labs/minimog-badges/main-v3.js" async></script>

现在,托管在Github上的这两个文件正在你的页面上运行。

技巧

  • 缓存

如果你注意到,我在文件名中加入了版本号main-v3.jsstyle-v1.css。为什么需要添加这个版本号?

答案是因为jsDelivr会缓存你的资源。 这对于更快的资源加载是有好处的,但当你进行更改时,缓存不会立即清除,导致仍然加载旧代码。

要清除缓存,你需要给jsDelivr发送电子邮件,这相当不方便。 所以我的简单解决方案是直接在文件名中加入版本号。 当你进行更改时,创建一个包含新版本号的新文件。例如:main-v4.jsstyle-v2.css, 并修改嵌入链接,你将立即获得新代码,而无需等待缓存清除。

  • 压缩

如果你的代码未压缩,只需在文件的URL中添加.minjsDelivr将为你的原始文件生成一个压缩版本。

例如:

<script
  src="https://cdn.jsdelivr.net/gh/Insights-Labs/minimog-badges/main-v3.min.js"
  async
></script>

结论

希望这个教程对你有所帮助!

快乐分享