微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-4 – mvc 4捆绑和缩小 – 当我刷新时没有获得304(未修改)

我正在通过System.Web.Optimization尝试MVC 4 Beta的捆绑和缩小.当我点击刷新时,我希望我正在使用它的网站会收到304(未修改).

我认为src指向我的js包,/ desktop-js-bundle?v = D33JhbMl9LHkXSPBj1tfRkRI0lheyVmbSMQqD59bXHg1(带有该版本#),只有当服务器上的包中的一个文件修改时,版本#才会改变.然而,每当我点击刷新并监控Chrome的F12中的网络选项卡时,它就会发出具有相同版本号的请求并获得200状态.

为什么它不会返回304 ?,这会减少负载增加相应的数量.谢谢!

解决方法

Why doesn’t it just return 304?

因为当你点击F5时,你的浏览器缓存就会过期.基本上你的测试是有缺陷的.您应该在不同页面中放置此捆绑包的链接(使用< script>标记).然后,您应该使用超链接导航到这些页面.现在观察网络选项卡.

还要确保您在发布模式下运行.

更新:

好的,在挖了一点之后,我发现了什么.确实总是发送200 HTTP状态代码,这是正常的.但第二次从缓存中获取包.

这是第一个请求:

我们可以看到,在这种情况下,bundle来自具有HTTP缓存响应头的服务器.

这是第二个请求:

我们可以在第二个屏幕截图中清楚地看到捆绑包是从缓存中提供的.注意整条线是如何变灰的. HTTP 200状态代码是虚构的=>客户端甚至不向服务器发送HTTP请求,因为它直接从其缓存中检索捆绑包.

我可以在谷歌浏览器中观察到同样的事情.

对于第一个请求:

对于第二个请求:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐