清除Angular中的浏览器缓存

问题描述 投票:0回答:1

我有一个Angular应用程序的问题,我经常更新。

我想避免浏览器缓存,我正在尝试几种替代方案,但它们都不起作用。

第一件事是我很难测试解决方案是否有效,因为当我上传新版本时,有时我看到它而不需要做更多而不是刷新页面,有时我需要打开控制台并强制刷新清空缓存。

我试图在请求标题中包含Cache-Control:no-cache,正如您在图像中看到的那样,但这对我不起作用。

enter image description here

我也尝试过,放入app.component.ts

templateUrl: './app.component.html? v1'

正如我在some answers看到的那样,但两者都没有。

事实上,我是绝望的,因为当我给出一些我觉得有效的东西时,当我和我的老板一起检查时,他不刷新它:-(而且坏的是因为我说我不知道​​怎么回事检查一下,每次进入网络时,都会从服务器请求最新版本。

谢谢您的帮助

angular browser browser-cache cache-control
1个回答
1
投票

使用ng build构建应用程序时,应使用以下标志:

--outputHashing=all

这是为了启用缓存清除。这会为每个构建的文件添加一个哈希值,这样只要您将新版本上传到服务器,就会强制浏览器加载最新版本。

因此,一种方法是运行它:

ng build --prod --outputHashing=all

您可以在here上阅读有关构建选项标志的更多信息。

如果您不希望在运行构建时附加标志,则应在angular.json文件的配置中进行设置。

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
     .
     .
     .
  }
}

0
投票

试试location.reload(true);

根据w3c description

默认情况下,reload()方法从缓存重新加载页面,但您可以通过将forceGet参数设置为true来强制它从服务器重新加载页面:location.reload(true)。

© www.soinside.com 2019 - 2024. All rights reserved.