0

我有一个网站,其中包含静态文件,如 Jquery 库、图像和其他 JS 文件。

因此,我希望专门为这些资源设置到期时间,以便可以轻松地从用户缓存中检索这些资源,而无需缓存其他静态资源

任何人都可以建议一种在asp.net 3.5中做到这一点的方法吗?

谢谢你

4

2 回答 2

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 上进行配置

于 2013-04-22T12:47:21.030 回答
0

您可以利用浏览器缓存通过 http 标头设置过期数据。Google Developers / Page Speed Insight 对此过程进行了简要说明:

https://developers.google.com/speed/docs/insights/LeverageBrowserCaching

于 2014-01-27T16:12:56.590 回答