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

时间:2014-04-05 04:44:21

标签: asp.net-mvc-4 bundling-and-minification

我曾经把"?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>

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

我可能错了,但有一次我不得不手动刷新浏览器以便更新脚本,因为我对脚本做的次要更改没有生效关于版本。

导致这种情况的原因是什么? 在版本控制中是否考虑了微小的变化?

1 个答案:

答案 0 :(得分:9)

.net如何生成bundle的版本?

捆绑包的版本是所有捆绑内容的 SHA256 based hash

因此,如果您要更改捆绑文件的任何数据,则会更改版本。