关于asp.net 缓存JS,CSS,图片等不经常变动的文件。该怎么处理
关于asp.net 缓存JS,CSS,图片等不经常变动的文件。
弄了个小网站,发现数据库展示的信息小,JS CSS 图片很多,而且由于网站背景这些东西可能 几年都不会变,遂想把这些不变的东西缓存到客户端存他一个月更新一次。
1,办法是改IIS设置启用IIS的过期功能。但是这样的方法不实用,一般都把网站放在服务商哪儿,不能改IIS 。
2,写代码设置缓存写个类继承IHttpHandler,在配置文件里配置要监视客户端的请求文件类型。
写完在VS测试正确HttpWacth监视,CSS JS 图片都正确的缓存了。但是问题来了,发下发布过后,设定的缓存时间无效了。值为 not set ,google之,发现有位仁兄在后缀加上了 ashx。测试了一下对了。
问题:为什么要在后面加上 ashx呢? 是自定义HTTP头的原因吗? 希望大家帮我解下惑。才开始学习编程
------解决方案--------------------
ashx用了处理不需要aspx处理的文件请求,约等于输出时不时html的,如图片
用它可以方便的调用httphandler,不用web.config配置
你的问题可能是,handler配置有问题,所以用ashx没问题了
------解决方案--------------------
楼主你说的文件,一般的游览器都会有缓存的,也就是说的客户端缓存,这个就算你不设置,也是有的。
------解决方案--------------------
既然是个小网站,就没必要去弄的那么复杂
----------------------------------签----------名----------栏----------------------------------
弄了个小网站,发现数据库展示的信息小,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没问题了
------解决方案--------------------
楼主你说的文件,一般的游览器都会有缓存的,也就是说的客户端缓存,这个就算你不设置,也是有的。
------解决方案--------------------
既然是个小网站,就没必要去弄的那么复杂
----------------------------------签----------名----------栏----------------------------------