javascript - 需要有关如何实现 js/css 版本控制的建议

标签 javascript version-control web

所以我正在实现这个 js/css 版本控制方案,我基本上在其中附加了 js/css 文件的校验和。我想到的策略是,基本上得到这个校验和值,然后计算文件的校验和(我假设可能来自缓存),如果它们匹配,那么客户端有最新的文件,如果不匹配那么客户端浏览器将强制从服务器下载该特定文件。这种方法正确吗? 另外我想了解脚本标签的行为,比如脚本标签的 src attr 是先去缓存获取 js 文件还是直接去 web 服务器?

谢谢

最佳答案

Tomasz 一针见血...除了有一个更简单的解决方案 :-) 根本不要更改文件的文件名;只需更改指向它们的链接,特别是“搜索”部分。而且您实际上并不需要校验和,您还可以在源代码控制系统中使用递增数字或当前修订号

换句话说:

<script src='myFile.js'/>

会是:

<script src='myFile.someChecksum.js'/>

正如 Tomasz 所描述的那样;如果你这样做:

<script src='myFile.js?x=someChecksum'/>

浏览器仍会将其视为一个新文件(当校验和更改时),但您不必每次都更改文件名。如果您使用修订号,您甚至不必每次都计算校验和,您只需要服务器端逻辑来达到以下效果:

<script src='myFile.js?x={{currentRevisionNumber}}'/>

关于javascript - 需要有关如何实现 js/css 版本控制的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12164677/

相关文章:

javascript - TypeScript 类的 "Instance-wide"getter/setter?

version-control - TFS 2017 - 如何构建/交付仅更改的文件?

sql-server - 如何对SQL Server数据库进行版本控制?

asp.net - 代码覆盖率工具

javascript - 如何以相反的顺序从 CalendarControl.js 选择日期

javascript - 你如何计算 Sprite 适合的最小圆形的半径?

javascript - 这个模式 f(a)(b)(c) 叫什么?

version-control - TortoiseCVS 和 TortoiseSVN 同时安装时会冲突吗?

cmd - 在服务器上停止/启动应用程序池和站点

php - 在 yii2 中制作表格失败