1 protected void Application_BeginRequest() 2 { 3 //獲取當前請求的url 4 string url = HttpContext.Current.Request.Path; 5 //獲取請求的文件後綴名 6 string extension = Path.GetExtension(url); 7 //因爲MVC動態頁面不帶後綴,全部其餘有後綴的都加上緩存 8 if (string.IsNullOrWhiteSpace(extension)) return; 9 10 HttpResponse Response = HttpContext.Current.Response; 11 Response.Cache.SetCacheability(HttpCacheability.Public); 12 Response.Cache.SetMaxAge(new TimeSpan(8760, 0, 0)); 13 Response.Cache.SetExpires(DateTime.Now.AddYears(1)); 14 }
此舉的好處就是用戶在第一次訪問網站後,圖片,腳本,樣式等其餘靜態資源都會被加上緩存頭,只要用戶不去清除本地的資源,下次訪問時,瀏覽器就會自動判斷這些靜態資源的有效期,若是在有效期內就不會像服務端發起請求,緩存服務器的請求壓力。但隨之而來的就時每次更新靜態資源,必定要在後面加上版本號,這樣纔會告知瀏覽器這是新的資源,應該向服務端請求下,不然用戶還會一直看到舊資源,而不是更新後的資源。瀏覽器