Разница в 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>