asp.net缓存css和脚本但不是页面

时间:2012-05-12 14:01:58

标签: c# asp.net

在Page_Load方法的母版页中,我有这一行:

Response.Cache.SetCacheability(HttpCacheability.NoCache);

基本上,我不想缓存页面。我确实要缓存.js和.css文件,但是当我重新加载页面时,这些文件不会从浏览器缓存中加载,而是重新加载。

我需要修理什么?

感谢。

2 个答案:

答案 0 :(得分:3)

在html元部分

中添加这些行
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META HTTP-EQUIV="PRAGMA" content="NO-CACHE">
ASP页面中的

// 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

P.S。如果它没有帮助。你可以像这样使用作弊:&lt;%=在这里你应该添加一些随机数,例如Ticks%&gt; - 为不应缓存的元素添加它。 例如:

<link rel=stylesheet href="main.css?<%= ... %>">

答案 1 :(得分:2)

您需要为静态资源(.js和.css)文件设置缓存。默认情况下不启用此功能。

有关详细信息,请参阅此SO答案:https://stackoverflow.com/a/2196848/69868

另请注意,当您使用F5 / Ctrl + F5重新加载页面时,某些浏览器将忽略缓存说明,并且它们将始终获取新内容(例如Firefox和Ctrl + F5)。如果要测试缓存,请通过在位置文本框中重新输入URL来重新加载页面。