Javascript 如何以编程方式清除Angular 6应用程序上的缓存?
只是想知道,Angular是否有办法保证用户访问站点时缓存被清理Javascript 如何以编程方式清除Angular 6应用程序上的缓存?,javascript,angular,Javascript,Angular,只是想知道,Angular是否有办法保证用户访问站点时缓存被清理 我有一个角度的应用程序,我偶尔会将更改推到上面,但不幸的是,用户无法看到这些更新,除非他们以匿名方式打开它。如何修复此问题?要控制可能随时更改的特定文件,可以向url添加一个假版本参数,并更改参数的值 例如: 当参数的值更改时,该资源的缓存将被破坏 对于测试,我发现有用的是inspector(至少chrome/firefox有),在network选项卡中,有一个复选框用于禁用缓存。当它被选中并且该选项卡处于打开状态时,您可以加载您
我有一个角度的应用程序,我偶尔会将更改推到上面,但不幸的是,用户无法看到这些更新,除非他们以匿名方式打开它。如何修复此问题?要控制可能随时更改的特定文件,可以向url添加一个假版本参数,并更改参数的值 例如:
当参数的值更改时,该资源的缓存将被破坏
对于测试,我发现有用的是inspector(至少chrome/firefox有),在network选项卡中,有一个复选框用于禁用缓存。当它被选中并且该选项卡处于打开状态时,您可以加载您的页面,而不会对其进行缓存。当然,这是为您开发时,而不是为网站的用户
对于不缓存文件的通用方法,请查看此问题,了解如何在web浏览器中禁用缓存:拥有/运行angular material项目的人员甚至还没有在自己的演示网站上找到它,因此我不太希望有一个广受支持的解决方案。更改的性质是什么?代码更改或数据更改?一种解决方案是将web服务器(例如apache)配置为从不缓存
index.html
。每当部署新版本时,都要向所有文件追加一个版本号(例如main-1.2.1.js
)。我相信angular cli
会通过散列文件名自动实现这一点。当您构建到--prod时,文件应该附加散列,从而触发对资源的新请求。因此,当您查看网络调试窗口时,这些文件(如果相同)应该有一个http 304未修改,如果它们是新的,它们应该有一个200,说明它们再次被抓获。在我看来,这是一个肮脏的修复,但如果鞋子合适,就穿上它。@xORF否则可能是,但wordpress使用它。