【发布时间】:2014-04-05 04:44:21
【问题描述】:
我曾经在我的脚本引用的末尾加上“?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>
我的问题是:
该版本何时更改?我可以依靠这个吗?它在内部是如何工作的?
我可能错了,但有一次我不得不手动刷新浏览器以更新脚本,因为我对脚本所做的微小更改没有在版本。
是什么原因造成的?
版本控制中是否考虑了微小的变化?
【问题讨论】:
-
运行应用程序时分配的版本!如果您使用的是 iis,则必须重新启动 IIS。如果您正在使用 IIS Express,请停止并再次启动应用程序版本将自动更改。
-
谢谢。不过我已经注意到了,那就是回答“何时”而不是“如何”:)
-
根据我的实践经验,我认为使用严格的缓存机制实现或覆盖自己的捆绑要好得多,因为很难知道究竟是如何工作的以及是否它们是否正常运行,此外,无法跟踪和调试会降低您可能希望通过使用捆绑软件交付给客户的附加值
标签: asp.net-mvc-4 bundling-and-minification