我在仪表板中工作,内置角度,攻击在java中实现的后端。
我之前从未使用过angularjs。
在前端实施新功能并部署它们时,人们需要在Mac中使用Cmd + Shift + R进行硬刷新"以便查看新功能。
到目前为止,我在index.html的元数据中添加了这个
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
<meta http-equiv="CACHE-CONTROL" content="NO-STORE">
但它没有用。
你知道如果angular有一些指令,我可以使用一些版本来告诉浏览器,是时候重新加载内容吗?
感谢!!!
答案 0 :(得分:0)
我用来确保浏览器提取更新资源副本的最简单方法是在URL中附加一个唯一的查询字符串值。当告诉浏览器重新拉动时,只需更改查询字符串值。
这种语法会略有不同,具体取决于您的服务器技术(我对JSP不是很熟悉),但在ASP.NET中它看起来像:
<script type="text/javascript" src="myfile.js?v=<%= Conf.StaticKey %>"></script>
在您的代码中,您可以指向您的应用配置,并从那里提取密钥,然后只需在新版本的时候更改配置中的密钥:
public static class Conf {
public static string StaticKey {
get { return ConfigurationManager.AppSettings["staticKey"]; }
}
}
<appSettings>
<add key="staticKey" value="B0DFAB04-33DC-40E7-9E9F-6619CA6441EA" />
</appSettings>
当配置值更改时,呈现的HTML将显示不同的查询字符串,因此浏览器将重新拉取javascript文件。忽略实际的查询字符串值。
答案 1 :(得分:0)
要避免资源缓存(例如JS或CSS文件),您可以将角度应用的版本号添加到其网址
http://example.com/v1.2.3/js/myjsfile.js
以这种方式发布新版本的应用时,网址会发生变化,浏览器会再次下载该文件。
对于开发,请考虑为此类网址添加时间戳,而不是版本号
http://example.com/dev/js/myjsfile.js?123124325435
如果您想避免对HTML文件进行缓存,请考虑向客户端发送no-cache标头
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
在这里您可以找到关于它的完整帖子(How to control web page caching, across all browsers?)
请注意,在生产禁用缓存可能会使服务器过载。