我有一个Angular应用程序的问题,我经常更新。
我想避免浏览器缓存,我正在尝试几种替代方案,但它们都不起作用。
第一件事是我很难测试解决方案是否有效,因为当我上传新版本时,有时我看到它而不需要做更多而不是刷新页面,有时我需要打开控制台并强制刷新清空缓存。
我试图在请求标题中包含Cache-Control:no-cache,正如您在图像中看到的那样,但这对我不起作用。
我也尝试过,放入app.component.ts
templateUrl: './app.component.html? v1'
正如我在some answers看到的那样,但两者都没有。
事实上,我是绝望的,因为当我给出一些我觉得有效的东西时,当我和我的老板一起检查时,他不刷新它:-(而且坏的是因为我说我不知道怎么回事检查一下,每次进入网络时,都会从服务器请求最新版本。
谢谢您的帮助
使用ng build构建应用程序时,应使用以下标志:
--outputHashing=all
这是为了启用缓存清除。这会为每个构建的文件添加一个哈希值,这样只要您将新版本上传到服务器,就会强制浏览器加载最新版本。
因此,一种方法是运行它:
ng build --prod --outputHashing=all
您可以在here上阅读有关构建选项标志的更多信息。
如果您不希望在运行构建时附加标志,则应在angular.json文件的配置中进行设置。
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
.
.
.
}
}
试试location.reload(true);
根据w3c description:
默认情况下,reload()方法从缓存重新加载页面,但您可以通过将forceGet参数设置为true来强制它从服务器重新加载页面:location.reload(true)。