部署新版本时清除浏览器缓存

时间:2017-11-06 11:54:49

标签: javascript asp.net angularjs browser-cache

我有一个 ASP.Net MVC + angular Web应用程序。大约有500多名用户正在使用该应用程序。

问题是每当我们进行新的发布/发布时,我们都要说用户清除他们的浏览器缓存。这对用户来说很烦人。

Facebook等其他网站如何在更新应用程序/网站时管理浏览器缓存,因为我们不经常清除浏览器缓存。

当有新版本时,有没有办法自动清除borwser缓存。

3 个答案:

答案 0 :(得分:2)

使用ASP.Net Core MVC,您可以将asp-append-version TagHelper用于脚本文件。它计算文件的哈希值并将其附加到文件名:

<link rel="stylesheet" type="text/css" href="myfile.css" asp-append-version="true" />    
<script src="myfile.js" asp-append-version="true"></script>

所以文件会变成这样:

<link rel=stylesheet href="myfile.css?v=qWYa_XOt9FCnEt2z8CjC7apiyjA5l9UA9UCqT028LI">
<script src="myfile.js?v=eN9kwxdWtX5aP8H3TFVOQrwu08Qndyktg5kvpSLa1A">

答案 1 :(得分:0)

您可以像这样添加版本号

<script type="text/javascript" src="pathTofile.some.js?v1"></script>

?之后的文本可以是任何内容。查询字符串将有助于避免缓存&amp;浏览器将加载不同的文件并使缓存中的文件无效

答案 2 :(得分:0)

您可以通过任务运行程序设置缓存清除:grunt,gulp等。

通过使用文件计算的哈希,您还可以使缓存变得更加智能。这样,只有在文件发生变化时才会缓存文件(从而提高性能)。

请查看此示例:https://github.com/shakyShane/grunt-cache-breaker(类似的模块可用于其他任务运行者)