C# 部署时清除缓存一次

C# 部署时清除缓存一次,c#,.net,angularjs,webforms,C#,.net,Angularjs,Webforms,我试图找出最简单的方法是强制最终用户浏览器清除缓存 我们正在visual studio中使用.Net WebForms和AngularJs 所以每次我们将.Net项目部署到测试或生产环境时,我们都会遇到缓存保存旧javascript的问题,并隐藏新的实现 我知道一些解决方案,但我想看看是否还有其他解决方案 提前谢谢 在此页面中单击鼠标右键,然后选择“查看源”,您将看到静态文件的后缀如下所示: <script src="//cdn.sstatic.net/Js/stub.en.js?v=b1

我试图找出最简单的方法是强制最终用户浏览器清除缓存

我们正在visual studio中使用.Net WebForms和AngularJs

所以每次我们将.Net项目部署到测试或生产环境时,我们都会遇到缓存保存旧javascript的问题,并隐藏新的实现

我知道一些解决方案,但我想看看是否还有其他解决方案


提前谢谢

在此页面中单击鼠标右键,然后选择“查看源”,您将看到静态文件的后缀如下所示:

<script src="//cdn.sstatic.net/Js/stub.en.js?v=b1fcfe635df7"></script>

基本上这是一种最好的方法,生成一些后缀并将其作为querystring参数附加到所有静态文件的末尾。这将迫使浏览器认为文件是新的,即如果查询字符串已更改


但这里的问题是,你多久更改一次这些文件。。。您希望强制用户多久下载一次新的静态文件。。。使用生成的时间戳可能会迫使用户在每次访问站点时下载文件,这通常并不理想。。。。可能使用web.config日期或类似日期。

您可以在web.config中添加以下设置以禁用缓存

  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="DisableCache" />
    </staticContent>
  </system.webServer>


您的两种解决方案是什么?为什么要投否决票?一种解决方案是在JavaScriptFile中使用datestamp或使用Yep!去吧!在Web.Config中:然后在javascriptfiles结尾:?v=Yes这将很好地工作,关于使用类似于Web.Config上次修改日期的内容,我的观点是它是“自动”的,即您不必手动更改Web.Config中的键。尽管手动操作,但如果您只上传了一个新的样式表之类的东西,您可以绕过发布构建。。。赞成和反对,哪一个最好。谢谢你,伙计!干杯:)