2013-07-10 150 views
2

当您将脚本或样式捆绑包添加到mvc站点时,捆绑框架会将一个版本附加到输出标记。asp.net mvc捆绑可扩展性

例如<script src="/Scripts/custom/App.js?v=nf9WQHcG-UNbqZZzi4pJC3igQbequHCOPB50bXWkT641"></script> 通知查询字符串?V = XXX-XXX

如果您在多个服务器上托管你的应用程序,然后在每个服务器将有附加到资源的URL,这意味着在一个典型的循环负载均衡的不同版本环境中,每当您访问不同的服务器时,您都会下载该资源。

对我来说,似乎否定了以某种方式绑定的价值,因为初始加载速度较快,但在随后的用户交互中遇到恶化的性能。

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

+0

作为一个构建事件绑定到我似乎否定了框架处理这个的价值,因为在调试模式下,我想要完整的脚本并且在发布模式下我想要框架已经完成的包,但在这种情况下,我必须我自己实现这个逻辑。 – RealAfricanProgrammer

回答

2

实际上,版本号是文件内容的散列。所以如果你的webfarm的所有节点上都有相同的JavaScript文件,它们应该都得到相同的版本号。如果您获得了不同的哈希值,这可能表示您没有在网站的所有节点上部署这些文件的相同内容。

+0

谢谢@达林迪米特洛夫,我没有通过提及这个文档的文档,但在进一步的调查中,我注意到这是真的,该版本只是所有文件内容的散列。 – RealAfricanProgrammer