【问题标题】:asp.net mvc bundling scalabilityasp.net mvc 捆绑可扩展性
【发布时间】:2013-07-10 06:02:40
【问题描述】:

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

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

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

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

实际上,我知道其他人是如何处理这个问题的,具体取决于下载的大小,因为压缩和压缩后的资源很小,但在许多情况下可能并非如此。那么,如何在高度横向扩展的环境中以最少的努力获得捆绑和缩小的好处。

【问题讨论】:

  • 对我来说,捆绑作为构建事件似乎否定了框架处理这个问题的价值,因为在调试模式下我想要完整的脚本,在发布模式下我想要框架已经完成的捆绑包,但在这个如果我必须自己实现这个逻辑。

标签: asp.net-mvc-4


【解决方案1】:

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

【讨论】:

  • 感谢@Darrin Dimitrov,我浏览过的所有文档都没有提到这一点,但在进一步调查中我注意到这是真的,版本只是所有文件内容的哈希。
猜你喜欢
  • 1970-01-01
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多