Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止Angular 7站点上的浏览器缓存?_Angular_Caching_Browser Cache_Cache Control_Angular7 - Fatal编程技术网

如何防止Angular 7站点上的浏览器缓存?

如何防止Angular 7站点上的浏览器缓存?,angular,caching,browser-cache,cache-control,angular7,Angular,Caching,Browser Cache,Cache Control,Angular7,我在生产环境中有一个web应用程序。用户每天都在使用它,当我发布更新时,用户返回到web应用程序,他/她查看web应用程序的旧版本。他需要刷新浏览器以加载新版本。我怎样才能解决这个问题?我无法告诉数百名用户在每次发布更新时刷新页面(每周3-4次)。我使用以下方法构建了我的前端应用程序:Angular7和AngularCLI ng build --aot --output-hashing=all 这将生成一个必须与服务器端匹配的哈希。如果前端的缓存版本与散列不同,则会获得应用程序的新版本。这假设

我在生产环境中有一个web应用程序。用户每天都在使用它,当我发布更新时,用户返回到web应用程序,他/她查看web应用程序的旧版本。他需要刷新浏览器以加载新版本。我怎样才能解决这个问题?我无法告诉数百名用户在每次发布更新时刷新页面(每周3-4次)。我使用以下方法构建了我的前端应用程序:Angular7和AngularCLI

ng build --aot --output-hashing=all
这将生成一个必须与服务器端匹配的哈希。如果前端的缓存版本与散列不同,则会获得应用程序的新版本。这假设您使用的是使用angular CLI构建的标准方式

如果你不是,你可以尝试下面的一些黑客行为(未经测试)


我昨天做了同样的事情,但是现在我得到了同样的错误,浏览器缓存问题仍然存在。你确定你使用了正确的URL吗?如果您使用的是后端的完整堆栈应用程序,则服务器端可能提供的服务不是/dist文件夹。例如,调试模式下的Visual Studio IIS将提供其配置的文件,而不是dist文件夹(默认情况下,我记得在2016年),需要检查的一件事是构建应用程序并使用这些输出哈希设置。然后打开dist文件夹,确保文件已打开。这将确保服务器端生成工具不会覆盖文件。没问题。如果它最终成功了,请告诉我。如果也接受答案;)非常感谢小悟空,它正在为我工作—ng build--aot--output hashing=all您的应用程序托管在哪里?您需要确保index.html未存储在浏览器缓存中。
@Component({
templateUrl: './app/something/something/something.html?v=' + Math.random()
stylesUrls: ['./app/something/something/something.html?v=' + Math.random()]
})