Asp.net mvc 4 asp.net mvc捆绑可扩展性

Asp.net mvc 4 asp.net mvc捆绑可扩展性,asp.net-mvc-4,Asp.net Mvc 4,将脚本或样式包添加到mvc站点时,绑定框架将向输出标记追加一个版本 e、 g. 注意查询字符串?v=xxx xxx 如果你在多台服务器上托管你的应用程序,那么每台服务器都会在资源url中附加一个不同的版本,这意味着在一个经典的循环负载平衡环境中,你每次访问不同的服务器时都会下载该资源 在我看来,这似乎在某些方面否定了捆绑的价值,因为初始加载速度更快,但在随后的用户交互中性能会下降 在实践中,我知道其他人是如何处理这个问题的,这取决于下载的大小,可能并不重要,因为缩小和压缩的资源很小,但在许多情况

将脚本或样式包添加到mvc站点时,绑定框架将向输出标记追加一个版本

e、 g.
注意查询字符串?v=xxx xxx

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

在我看来,这似乎在某些方面否定了捆绑的价值,因为初始加载速度更快,但在随后的用户交互中性能会下降


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

实际上,版本号是文件内容的散列。因此,如果您的webfarm的所有节点上都有相同的javascript文件,那么它们应该都具有相同的版本号。如果您得到的是不同的散列,这可能表明您没有在webfarm的所有节点上部署这些文件的相同内容。

在我看来,捆绑作为构建事件似乎否定了框架处理此问题的价值,因为在调试模式下,我需要完整脚本,在发布模式下,我需要框架所需的捆绑包已经有了,但在这种情况下,我必须自己实现这个逻辑。谢谢@Darrin Dimitrov,我浏览过的所有文档都没有提到这一点,但在进一步调查中,我注意到这是真的,这个版本只是所有文件内容的散列。