asp.net – 为什么我的aspx页面没有被缓存在客户端上?
发布时间:2020-12-16 06:57:29 所属栏目:asp.Net 来源:网络整理
导读:我有一个动态生成的CSS文件.它相当大,并且针对不同的浏览器具有不同的内容.它很少变化. 所以在.aspx页面的顶部我有: %@ OutputCache Duration="86400" Location="ServerAndClient" VaryByParam="none" VaryByCustom="browser" % 我对生成动态图像的MVC操作
我有一个动态生成的CSS文件.它相当大,并且针对不同的浏览器具有不同的内容.它很少变化.
所以在.aspx页面的顶部我有: <%@ OutputCache Duration="86400" Location="ServerAndClient" VaryByParam="none" VaryByCustom="browser" %> 我对生成动态图像的MVC操作有类似的指令: [OutputCache(Duration = 86400,VaryByParam = "none",Location = OutputCacheLocation.ServerAndClient)] 这应该导致文件缓存在服务器和客户端(但不是中间代理)一天. 响应标头似乎是正确的: HTTP/1.1 200 OK Cache-Control: private,max-age=83831 Content-Type: text/css; charset=utf-8 Expires: Wed,09 Jun 2010 08:52:45 GMT Last-Modified: Tue,08 Jun 2010 08:52:45 GMT Vary: * Server: Microsoft-IIS/7.0 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Tue,08 Jun 2010 09:35:34 GMT Content-Length: 70073 服务器端缓存工作 – 进一步的请求不再执行代码. 然而,客户端缓存以两种不同的方式被破坏:首先,在每个页面上再次请求内容,尽管它应该被缓存. 为什么浏览器会再次请求内容? 其次,当再次向服务器询问内容时,它返回HTTP 200以及整个内容.它应该返回没有正文的HTTP 304 Not Modified – 告诉浏览器重新使用它已经下载的内容. 当内容未更改时,如何确保它返回HTTP 304? 解决方法
1)变化:*会导致某些浏览器(如IE)无法缓存.变化:用户代理可能会更好(不确定).
2)WRT 200 vs 304:客户端是否发送了If- *标头? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 附加到HTTP响应的CORS标头未发送到浏览器
- .net – 这不是断点的有效位置
- asp.net-mvc – 迷你探查器不显示ajax请求信息?
- ASP.net页面上的表单标签
- 从app_data中删除文件夹时如何防止asp.net重新编译?
- 动手造轮子:实现一个简单的依赖注入(一)
- asp.net-mvc-3 – 如何在带有剃刀的asp.net mvc3中使用Kend
- asp.net-mvc – 是否发布了ASP.NET MVC 5?
- asp.net – UserControl有IsPostBack,但是Control没有
- asp.net-mvc – ASP.net 5 MVC 6 bower.json和project.json
推荐文章
站长推荐
- 将ASP.Net MVC的单页添加到现有的Web窗体应用程序
- asp.net-mvc – 如何正确识别vs2008版本级别?
- ASP.NET Core本身已经集成了一个轻量级的IOC容器
- asp.net – Visual Studio 2010调试速度慢
- ASP.NET Core WebApi将错误消息返回给AngularJS
- 实体框架 – 等同于.HasOptional在实体框架核心1
- asp.net-mvc-3 – 如何配置DbContext以使用Oracl
- asp.net – 应该在ServiceStack中添加哪些插件
- 如何使用ASP.net Web API和Javascript下载二进制
- asp.net – 如何将一个对象序列化为查询字符串格
热点阅读