ASP.NET MVC:脚本捆绑何时决定更改捆绑包的版本?

spo*_*rts 8 asp.net-mvc-4 bundling-and-minification

我过去在脚本引用的末尾加上"?v = n",如:

<script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=2"></script>
Run Code Online (Sandbox Code Playgroud)

每次我编辑.js时,我都会为该版本添加1,例如:

<script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=3"></script>
Run Code Online (Sandbox Code Playgroud)

我决定不能继续这样(我现在有太多的脚本),所以我开始使用ASP.NET MVC捆绑功能(BundleConfig, BundleCollection, RegisterBundles,等等).

实际上,版本会自动分配给捆绑包:

<script src="/Scripts/Bundles/Foo?v=EjpuCsTAfNN9NMv5E8hER41p25Zj9w6ncqWRsYdqQUY1"></script>
Run Code Online (Sandbox Code Playgroud)

我的问题是:
该版本何时更改?我可以依靠吗?它在内部如何运作?

我可能错了,但有一次我不得不手动刷新浏览器以便更新脚本,因为我对脚本所做微小更改没有对版本生效.

可能是什么导致了这个?
版本控制中是否考虑了微小变化?

Dmi*_*ets 9

.net如何生成bundle的版本?

捆绑包的版本是SHA256 based hash所有捆绑内容中的一个.

因此,如果您要更改捆绑文件的任何数据 - 将更改版本.