asp.net mvc捆绑可扩展性

时间:2013-07-10 06:02:41

标签: asp.net-mvc-4

将脚本或样式包添加到mvc站点时,捆绑框架会将一个版本附加到输出标记。

e.g。 <script src="/Scripts/custom/App.js?v=nf9WQHcG-UNbqZZzi4pJC3igQbequHCOPB50bXWkT641"></script> 注意查询字符串 ?v = xxx-xxx

如果您在多个服务器上托管您的应用程序,那么每个服务器都会在资源URL上附加不同的版本,这意味着在经典的循环负载平衡环境中,每次访问不同的服务器时都会下载该资源。

对我而言,似乎否定了在某些方面捆绑的价值,因为初始加载速度更快,但后续用户互动会遇到性能下降。

在实践中,其他人如何处理这个问题,我知道根据下载的大小,它可能是微不足道的,因为缩小和压缩的资源很小但在许多情况下可能不是这种情况。那么如何以最小的努力在高规模的环境中获得捆绑和缩小的好处。

1 个答案:

答案 0 :(得分:3)

实际上,版本号是文件内容的哈希值。因此,如果您在webfarm的所有节点上都有相同的javascript文件,那么它们应该都具有相同的版本号。如果您获得了不同的哈希,这可能表示您尚未在Webfarm的所有节点上部署这些文件的相同内容。