总是需要在谷歌浏览器中禁用\删除缓存

时间:2017-11-02 11:03:07

标签: asp.net google-chrome caching

我正在开发一个Web应用程序,使用ASP.NET的服务器和AngularJS中的前端,每次我在Azure App Service(IIS即服务)上部署新版本时,我都有一个缓存问题 - 在我打开chrome开发人员工具中的“禁用缓存”复选框或按Ctrl + Shift + R

之前,视图不会更新到新版本

我尝试在index.html中添加此元标记

<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

但它不起作用。 我尝试了很多我在网络上发现的想法,但问题并没有解决

2 个答案:

答案 0 :(得分:0)

我认为之前已经问过这个问题(或者是simmilar),来源:Disabling browser caching for all browsers from ASP.NET

我发现这个线程的解决方案是将其添加到您的页眉:

<script language="javascript" type="text/javascript">
    window.onbeforeunload = function () {   
    // This function does nothing.  It won't spawn a confirmation dialog   
    // But it will ensure that the page is not cached by the browser.
}  

答案 1 :(得分:0)

静态内容有一个IIS配置来设置缓存模式和到期时间:

<configuration>
   <system.webServer>
      <staticContent>
         <clientCache cacheControlMode="UseExpires"
            httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />
      </staticContent>
   </system.webServer>
</configuration>

然后,如果您要检查向服务器发送JSHTML个文件的请求,则会显示几个标题:

响应:

  • ETag 缓存条目密钥
  • 上次修改此文件的上次修改日期

请求:

  • If-Modified-Since 此文件的上次修改日期 - 如果文件的上次修改日期与指定的日期不同,则从服务器提取文件
  • If-None-Match 缓存密钥的ETag - 如果上次修改日期与指定的日期不同,则从此缓存密钥中提取文件