Asp.net mvc 4 ASP.NET MVC:脚本捆绑何时决定更改捆绑的版本?

Asp.net mvc 4 ASP.NET MVC:脚本捆绑何时决定更改捆绑的版本?,asp.net-mvc-4,bundling-and-minification,Asp.net Mvc 4,Bundling And Minification,我过去常常在脚本引用的末尾加上“?v=n”,比如: <script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=2"></script> 我的问题是: 这个版本什么时候改变?我能相信这个吗?它是如何在内部工作的 我可能错了,但有一次我不得不手动刷新浏览器,以便更新脚本,因为我对脚本所做的微小更改没有对版本生效。 这可能是什么原因造成的? 版本控制中是否考虑了微小的更改?.net如何生成捆绑

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

<script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=2"></script>
我的问题是:
这个版本什么时候改变?我能相信这个吗?它是如何在内部工作的

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

这可能是什么原因造成的?
版本控制中是否考虑了微小的更改?

.net如何生成捆绑包的版本? 捆绑包的版本是所有捆绑内容的基于SHA256的哈希值


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

运行应用程序时指定的版本!如果您正在使用iis,则必须重新启动iis。如果您再次使用IIS Express停止并启动应用程序,则版本将自动更改。谢谢。我已经注意到了这一点,那就是回答“何时”而不是“如何”:)根据我的实践经验,我认为使用严格的缓存机制实现或覆盖您自己的绑定要比使用内置设施好得多,因为很难知道它们到底是如何工作的,以及它们是否正常工作,无法跟踪和调试会降低您可能希望通过使用bundle向客户提供的附加值在托管环境中,情况似乎并非如此。当项目的生成或web配置更改时,捆绑包版本也会更改。
<script type="text/javascript" src="@Url.Content("~/Scripts/Foo.js")?v=3"></script>
<script src="/Scripts/Bundles/Foo?v=EjpuCsTAfNN9NMv5E8hER41p25Zj9w6ncqWRsYdqQUY1"></script>