我有一个网站,其文件是静态的,如Jquery库,图像和其他JS文件。
因此,我希望专门为这些资源设置到期时间,以便可以从用户缓存中轻松检索这些资源,而无需缓存其他静态资源
任何人都可以在asp.net 3.5中建议一种方法吗?
谢谢
答案 0 :(得分:1)
您应该在文件夹中分隔这些静态文件,并直接在IIS上配置它
这是IIS6的一个示例:
http://www.websiteoptimization.com/secrets/advanced/9-7-content-expiration-IIS.html
或者通过代码,您可以实现IHttpModule
public class CacheExpiresModule : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
string url = context.Request.Url.ToString();
if (url.Contains("/Static/"))
{
context.Response.Cache.SetExpires(DateTime.Now.AddYears(30));
context.Response.Cache.SetMaxAge(TimeSpan.FromDays(365));
}
}
}
并在web.config上配置它
答案 1 :(得分:0)
您可以利用浏览器缓存通过http标头设置过期数据。 Google Developers / Page Speed Insight对此流程进行了简要说明:
https://developers.google.com/speed/docs/insights/LeverageBrowserCaching