首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于asp.net 缓存JS,CSS,图片等不经常变动的文件。该怎么处理

2012-03-08 
关于asp.net 缓存JS,CSS,图片等不经常变动的文件。弄了个小网站,发现数据库展示的信息小,JS CSS 图片很多,

关于asp.net 缓存JS,CSS,图片等不经常变动的文件。
弄了个小网站,发现数据库展示的信息小,JS CSS 图片很多,而且由于网站背景这些东西可能 几年都不会变,遂想把这些不变的东西缓存到客户端存他一个月更新一次。
1,办法是改IIS设置启用IIS的过期功能。但是这样的方法不实用,一般都把网站放在服务商哪儿,不能改IIS 。
2,写代码设置缓存写个类继承IHttpHandler,在配置文件里配置要监视客户端的请求文件类型。

C# code
 context.Response.Cache.SetExpires(DateTime.Now.Add(new TimeSpan(7,0,0,0)));            context.Response.Cache.SetCacheability(HttpCacheability.Public);            context.Response.Cache.SetValidUntilExpires(false);            switch (extension)            {                case "jpg":                    context.Response.ContentType = "image/jpeg";                    break;                case "png":                    context.Response.ContentType = "image/png";                    break;                case "gif":                    context.Response.ContentType = "image/gif";                    break;                case "swf":                    context.Response.ContentType = "application/x-shockwave-flash";                    break;                case "css":                    context.Response.ContentType = "text/css";                    break;                case "js":                    context.Response.ContentType = "application/x-javascript";                    break;            }            context.Response.AddHeader("content-disposition", "inline; filename=" + filename);            context.Response.WriteFile(file);        }

写完在VS测试正确HttpWacth监视,CSS JS 图片都正确的缓存了。但是问题来了,发下发布过后,设定的缓存时间无效了。值为 not set ,google之,发现有位仁兄在后缀加上了 ashx。测试了一下对了。
问题:为什么要在后面加上 ashx呢? 是自定义HTTP头的原因吗? 希望大家帮我解下惑。才开始学习编程


[解决办法]
ashx用了处理不需要aspx处理的文件请求,约等于输出时不时html的,如图片
用它可以方便的调用httphandler,不用web.config配置
你的问题可能是,handler配置有问题,所以用ashx没问题了
[解决办法]
楼主你说的文件,一般的游览器都会有缓存的,也就是说的客户端缓存,这个就算你不设置,也是有的。
[解决办法]
既然是个小网站,就没必要去弄的那么复杂


 
 
 
 
----------------------------------签----------名----------栏----------------------------------

热点排行