使用Web.config禁用单个JS文件的缓存

时间:2011-03-08 16:29:54

标签: c# asp.net caching

我目前在我的网站上缓存了所有可能的内容(图片,JS,CSS)。我只需要一次刷新一个JS文件。如何使用web.config忽略缓存中的一个文件,同时保留其他所有缓存的文件?

请注意,我在这里尝试了另一个链接,它似乎没有停止缓存我的文件: How do I disable caching of an individual file in IIS 7 using weserver config settings

3 个答案:

答案 0 :(得分:6)

怎么样:

<configuration>
  <location path="path/to/the/file.js">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="DisableCache" />
      </staticContent>
    </system.webServer>
  </location>
</configuration>

(注意路径是相对于web.config文件的)

答案 1 :(得分:2)

我认为您无法使用web.config执行此操作,但您可以在javascript网址中添加一个唯一的查询字符串参数,以便每次都加载它:

如果您使用的是ASP.NET

<script src="mycode.js?<%=System.Guid.NewGuid.ToString()%>"></script>

答案 2 :(得分:1)

将其路径设置为静态URL,但获取ASPX页面以提供脚本。在ASPX页面内,只需发回文本:

byte[] javascriptTextBuffer = GetMyJavascript();
Response.ContentType = "text/javascript";
Response.Write(javascriptTextBuffer);

在页面turn off caching内。

话虽如此,在我看来,你做错了什么,每次都要加载JavaScript文件。 使脚本保持静态,但使用参数来推动多功能性。