【发布时间】:2010-12-18 02:39:09
【问题描述】:
我有一些css文件需要动态生成(为什么很复杂,但是有必要)。简单的解决方案是将文件更改为 aspx 文件,并根据需要使用 标记来注入我想要的值。
这很好,直到我们开始缓存。似乎浏览器和服务器拒绝缓存文件。我试过操纵各种http缓存头,但浏览器总是在每次页面加载时重新获取文件。服务器始终以 HTTP 200(和正确的内容)响应,而不是 304(文件未更改)。
如何说服浏览器和服务器缓存这些动态css文件?
示例消费文件:
<html> <head> <link href="/style.aspx" type="text/css" rel="stylesheet"/>...
示例样式表,带有缓存头操作(省略文件的动态部分):
<%@ Page Language="C#" ContentType="text/css" EnableSessionState="False" %><%Response.Cache.SetLastModified(new DateTime(2009, 11, 18, 10, 1, 0));Response.Cache.SetMaxAge(TimeSpan.FromDays(30));Response.Cache.SetETag("4ffff353ff67ff1:0");%>
...css在这里...
对服务器的请求标头包括以下内容:
If-Modified-Since Wed, 18 Nov 2009 18:01:00 GMTCache-Control max-age=0
而相关的服务器响应头是:
Cache-Control private, max-age=2592000Last-Modified Wed, 18 Nov 2009 18:01:00 GMTDate Wed, 18 Nov 2009 19:36:07 GMT
有什么想法吗?
【问题讨论】:
-
您是否在常规 HTML 页面上尝试过缓存设置(和结果)?我的意思是,你确定这是一个 CSS 问题,而不是一个常规的 HTML 页面吗?
-
是的,一个普通的 aspx 页面在 w.r.t 中表现正确。缓存。
标签: c# css caching dynamic asp.net