我有一个网站,其中包含静态文件,如 Jquery 库、图像和其他 JS 文件。
因此,我希望专门为这些资源设置到期时间,以便可以轻松地从用户缓存中检索这些资源,而无需缓存其他静态资源
任何人都可以建议一种在asp.net 3.5中做到这一点的方法吗?
谢谢你
我有一个网站,其中包含静态文件,如 Jquery 库、图像和其他 JS 文件。
因此,我希望专门为这些资源设置到期时间,以便可以轻松地从用户缓存中检索这些资源,而无需缓存其他静态资源
任何人都可以建议一种在asp.net 3.5中做到这一点的方法吗?
谢谢你
您应该在文件夹中分离此静态文件并直接在 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 上进行配置
您可以利用浏览器缓存通过 http 标头设置过期数据。Google Developers / Page Speed Insight 对此过程进行了简要说明:
https://developers.google.com/speed/docs/insights/LeverageBrowserCaching