Javascript 和 CSS 文件中的哈希值是否用于完整性检查?

Are hashes in the names Javascript and CSS files used for integrity checking?

许多网站在 Javacript 和 CSS 文件名中使用哈希。例如,在撰写本文时,此页面使用 URL .../stacks.min.js?v=b0f9a80d741d 引用的文件。其他站点只是在文件名中放置一个短散列:main.abcd123.js

不,它不是用于完整性检查。它用于缓存破坏。浏览器缓存静态文件。每次上传此脚本的新版本时,?v=X 部分都会发生变化(通过 bundler/packager/...),因此浏览器认为它是一个新文件并再次下载它,而不是从本地缓存中读取.