在Page_Load方法我的母版頁,我有這樣一行:asp.net緩存CSS和腳本,但不是頁面
Response.Cache.SetCacheability(HttpCacheability.NoCache);
基本上,我不想緩存的頁面。我想要緩存.js和.css文件,但是當我重新加載頁面時,這些文件不會從瀏覽器緩存中加載,而是重新加載。
我需要解決什麼問題?
謝謝。
在Page_Load方法我的母版頁,我有這樣一行:asp.net緩存CSS和腳本,但不是頁面
Response.Cache.SetCacheability(HttpCacheability.NoCache);
基本上,我不想緩存的頁面。我想要緩存.js和.css文件,但是當我重新加載頁面時,這些文件不會從瀏覽器緩存中加載,而是重新加載。
我需要解決什麼問題?
謝謝。
在HTML中的ASP頁面添加這些線路元部分
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META HTTP-EQUIV="PRAGMA" content="NO-CACHE">
// Stop Caching in IE
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
// Stop Caching in Firefox
Response.Cache.SetNoStore();
這篇文章可能是有用的,以解決您的問題
http://www.codeproject.com/Articles/11225/Disabling-browser-s-back-functionality-on-sign-out
附:如果它沒有幫助。你可以像這樣使用作弊:<%=在這裏你應該添加一些隨機數例如Ticks%> - 添加它不應該被緩存的元素。 例如:
<link rel=stylesheet href="main.css?<%= ... %>">
您需要爲靜態資源(.js和.css)文件設置緩存。這不是默認啓用的。
請參閱本SO回答更多的細節:https://stackoverflow.com/a/2196848/69868
還要注意的是,當您重裝使用F5/Ctrl + F5鍵的頁面,有些瀏覽器會忽略緩存的指示,他們將永遠取新鮮的內容(例如火狐和Ctrl + F5)。如果你想測試緩存,重新加載頁面,重新輸入位置文本框中的URL。
你有阿帕奇?自從完成webdev以來,已經很長時間了,並且不確定它是否與asp兼容。 – 2012-05-12 14:09:31
我不認爲js和css文件會受到母版頁中代碼的影響,因爲這些文件是靜態內容,而不是asp.net動態頁面。 –
@allentranks:當我查看Chrome網絡標籤時,我發現從緩存中重新加載的唯一文件是jquery(它是從谷歌CDN加載的)。所有其他人都從我的服務器上重新加載。 – frenchie