首页 > 解决方案 > JSDelivr URL 中的差异有和没有“最新”

问题描述

我去 GitHub 问题 提出支持票,但想先问这个问题以避免噪音。

这就是文档所说的-

完全省略版本或使用“latest”加载最新版本(不推荐用于生产用途):

/npm/jquery@latest/dist/jquery.min.js
/npm/jquery/dist/jquery.min.js

根据文档,我们可以latest或完全省略它来加载最新版本。但我看到了不同——

添加(latestURL 1 - U1)

示例 - https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@latest/dist/sdk.min.js

它加载缓存 24 小时的最后发布版本。这意味着如果我们在 24 小时内发布 v2 和 v3,上面的 URL 仍然会显示 v1。

缓存期为 1 周。

没有latest(URL 2 - U2)

示例 - https://cdn.jsdelivr.net/npm/@letscooee/web-sdk/dist/sdk.min.js

虽然我们完全省略了latest,但它会立即加载最新版本,即 v3,并且缓存期也是 1 周。

我已根据他们的文档请求清除 API,但我相信这种行为与他们的文档不一致。

尝试谷歌搜索原因并阅读他们的文档 3 次。我错过了什么吗?

编辑 1

阅读马丁的回答后,我做了以下 -

(要查看图像,请在新标签中打开它们并在t之前删除.png

采取的步骤 @ 时间 U1 U2
清除缓存 世界标准时间 12:39:00 清除 清除
Age标题 @ 12:40 UTC 0 0
Date标题 @ 12:40 UTC Sun, 12 Sep 2021 12:40:25 GMT Sun, 12 Sep 2021 12:40:31 GMT
标头 世界标准时间 12:41:00 在此处输入图像描述 在此处输入图像描述
结果 世界标准时间 12:41:00 指向最新版本 0.0.3 指向最新版本 0.0.3
发布新的 NPM 版本 0.0.4 世界标准时间 12:48:00
刷新两个 URL 世界标准时间 12:49:00 显示旧版本 0.0.3 显示最新版本 0.0.4

最后一步表明我在这里错了。根据文档,这按预期工作(即仅显示 0.0.3)

标签: npmhttp-cachingjsdelivr

解决方案


两种情况下的缓存时间相同 - CDN 级别为 12 小时,浏览器为 7 天:cache-control: public, max-age=604800, s-maxage=43200

这并不一定意味着两个 URL 将始终返回相同的内容,因为 CDN 和您的浏览器都会根据第一次检索每个 URL 的时间独立计算每个 URL 的过期时间,因此 CDN 可能会在最长 12 小时内提供不同的版本发布。


推荐阅读