我有一個靜態的文件,如jquery庫,圖像和其他JS文件的網站。如何設置設置過期和緩存控制:只適用於ASP.NET圖像的max-age標題?
所以,我希望設置過期時間對這些資源的特別使那些可以從用戶輕鬆地檢索緩存和沒有緩存等靜態資源
有誰能夠提出一個辦法做到這一點在asp.net 3.5?
謝謝
我有一個靜態的文件,如jquery庫,圖像和其他JS文件的網站。如何設置設置過期和緩存控制:只適用於ASP.NET圖像的max-age標題?
所以,我希望設置過期時間對這些資源的特別使那些可以從用戶輕鬆地檢索緩存和沒有緩存等靜態資源
有誰能夠提出一個辦法做到這一點在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標頭設置到期數據。有一個從谷歌開發者/網頁速度洞察這一過程的簡要說明:
https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
謝謝你,但是,有沒有辦法從後面的代碼或web.config中做到這一點(僅適用於cacheing圖像圖像)。 – kishor 2013-04-23 06:11:49
IHttpModule解決了你的問題? – 2013-05-02 21:34:44
我認爲應用鏈接中建議的方式,將獲得所有靜態資源cached.it不會告訴如何配置它爲包含靜態resourecs的特定文件夾 – kishor 2013-05-03 11:45:03