Разница в URL-адресе JSDelivr с "последним" и без него

Я пошел на GitHub issues, чтобы подать заявку в службу поддержки, но подумал сначала задать вопрос, чтобы избежать шума.

Это то, что говорится в документации -

Полностью опустите версию или используйте «последнюю» для загрузки последней (не рекомендуется для производственного использования):

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

Согласно документу, мы можем либо полностью отказаться от него, чтобы загрузить последнюю версию. Но я вижу разницу-

С добавлением

Пример - https://cdn.jsdelivr.net/npm/@letscooee/ [электронная почта защищена] /dist/sdk.min.js

Он загружает последнюю выпущенную версию, которая кэшируется на 24 часа. Это означает, что если мы выпустим версии 2 и 3 в течение 24 часов, в указанном выше URL все равно будет отображаться версия 1.

Срок кеширования - 1 неделя.

Без

Пример - https://cdn.jsdelivr.net/npm/@letscooee/web-sdk/dist/sdk.min.js

Пока мы опускаем latest полностью, при этом немедленно загружается последний выпуск, т.е. v3, а период кеширования также составляет 1 неделю.

Я запросил API очистки в соответствии с их документами, но я считаю, что это поведение не согласуется с их документами.

Пытался найти причину в Google и 3 раза прочитал их документы. Я что-то упускаю?

2 ответа

Решение

Время кеширования в обоих случаях одинаковое - 12 часов на уровне CDN и 7 дней в браузере: cache-control: public, max-age=604800, s-maxage=43200

Это не обязательно означает, что оба URL-адреса всегда будут возвращать один и тот же контент, потому что и CDN, и ваш браузер вычисляют срок действия для каждого URL независимо, в зависимости от того, когда он был впервые получен, поэтому CDN может обслуживать разные версии в течение 12 часов после релиз.

Мне кажется, что обе ссылки указывают на один и тот же URL-адрес sdk. В соответствии с тем, как работают cdns, можно было бы упомянуть версию sdk, например:

      <script src="https://unpkg.com/three@0.126.0/examples/js/loaders/GLTFLoader.js"></script>

или как показано ниже, которое всегда будет указывать на последнюю версию sdk:

      <script src="https://cdn.rawgit.com/mrdoob/three.js/master/examples/js/loaders/GLTFLoader.js"></script>
Другие вопросы по тегам