HTTP кэширование делится на два типа, но для статических ресурсов, я думаю, большинство людей открывают принудительный кэш, верно?
Но есть недостаток принудительного кэширования в том, что нет способа гарантировать свежесть (свежесть) ресурсов, вы можете только ждать истечения времени кэша, чтобы получить последнее содержимое ресурса.
Поэтому я написал библиотеку Cache-Hash, которая специально занимается взломом HTTP кэша.
Я использовал ее в своем блоге: https://blog.imlete.cn.
Принцип
Добавляя номер версии хэша к ресурсам, представленным на сайте, как только содержимое изменится, хэш изменится, так что кэш может быть разрушен путем изменения url-адреса, что гарантирует, что ресурсы, на которые ссылается сайт, являются актуальными.
Например, следующая форма
<script src="https://demo.com/js/main.js?v=5e74b42bf5"></script>
Использование
Вы можете использовать CLI (инструмент командной строки) или JavaScript API для генерации хэша для ссылок на статические ресурсы
может быть установлен глобально с помощью
npm install cache-hash -g
cache-hash --target source --output public
# abbreviated
cache-hash -t source -o public
Если вы не хотите устанавливать его глобально, вы можете использовать npx
npx cache-hash --target source --output public
Как это работает?
Программа читает заданную целевую директорию, определяет все html, css, js в директории, генерирует AST (Abstract Syntax Tree) для этих файлов, а затем компилирует исходный код обратно через ast syntax tree после изменения содержимого ast syntax tree.