我们目前正在进行一个新项目,其中一个客户每天都在使用定期更新.这个项目是使用angular 2开发的,我们面临缓存问题,也就是说我们的客户没有看到他们机器上的最新变化.
主要是js文件的html/css文件似乎得到了正确的更新,而不会带来太多麻烦.
我们目前正在进行一个新项目,其中一个客户每天都在使用定期更新.这个项目是使用angular 2开发的,我们面临缓存问题,也就是说我们的客户没有看到他们机器上的最新变化.
主要是js文件的html/css文件似乎得到了正确的更新,而不会带来太多麻烦.
angular-cli通过为build命令(版本6/7,更高版本请参见here)提供--output-hashing
标志来解决此问题.示例用法:
ng build --output-hashing=all
Bundling & Tree-Shaking提供了一些细节和背景.运行ng help build
,记录标志:
--output-hashing=none|all|media|bundles (String)
Define the output filename cache-busting hashing mode.
aliases: -oh <value>, --outputHashing <value>
虽然这只适用于angular-cli的用户,但它工作出色,不需要任何代码更改或其他工具.
Update个
有helpfully和correctly条 comments 指出,这个答案为.js
个文件添加了一个散列,但对index.html
个文件没有任何作用.因此,在ng build
缓存 destruct .js
个文件之后,index.html
完全有可能保持缓存状态.
在这一点上,我将推迟到How do we control web page caching, across all browsers?