我曾经把"?v = n"在我的脚本引用的末尾,例如:
<script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=2"></script>
每次我编辑.js时,我都会为该版本添加1,例如:
<script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=3"></script>
我认为这不可能继续(我现在有太多脚本),所以我开始使用ASP.NET MVC捆绑功能(BundleConfig, BundleCollection, RegisterBundles
等)。
确实会自动为该捆绑包分配一个版本:
<script src="/Scripts/Bundles/Foo?v=EjpuCsTAfNN9NMv5E8hER41p25Zj9w6ncqWRsYdqQUY1"></script>
我的问题是: 该版本何时更改?我可以依靠吗?它在内部如何运作?
我可能错了,但有一次我不得不手动刷新浏览器以便更新脚本,因为我对脚本做的次要更改没有生效关于版本。
导致这种情况的原因是什么? 在版本控制中是否考虑了微小的变化?
答案 0 :(得分:9)
捆绑包的版本是所有捆绑内容的 SHA256 based hash
。
因此,如果您要更改捆绑文件的任何数据,则会更改版本。