1.缓存
浏览器为了更快速的加载项目文件,一般都会用到缓存。为了增加用户的体验,获取资源的时候总是先获取缓存的内容,如果缓存没有,我们才会去服务器上获取资源,例如一些图片、文件等。通常只会加载一遍,等再次访问的时候就会从缓存中获取了。作为开发人员,我们最不希望缓存的出现,因为我们需要实时的调整我们的代码,为了更快的实现当前的逻辑。
2.避免缓存
现在的angular-cli 对于这一点做了相对应的操作。
当我们部署完成代码后,打开浏览器,这时候我们获得的资源并不是我们的最新资源时,我们一般需要ctr+F5 强制刷新,清掉缓存,才能获取最新的资源。
如果客户不知道去清楚缓存怎么办?或者说 ,客户打开了网站,我们在这中间又提交和部署了新的版本,去解决了一些问题,那么客户如果不清除缓存,那么在网页上可能还存在我们已经解决过的问题。这个时候怎么办?
下面是我的解决办法:我们打包的时候运行命令 ng build --output-hashing all 这个时候打包的文件都是带有hash值。文件名属于唯一的,和缓存的不一样,所以会去服务器获取最新的资源。
这个情况也存在问题:如果用户不清空当前的文件夹,一直向服务器提交文件,会造成编译的垃圾文件过多的问题。所以建议清空当前的文件夹,之后在提交文件。
当然,在生产环境有严谨的配置的情况下,一般都会运行:ng build --prod 这个命令。
如果不想生成.map 文件,则会执行 ng build --output-hashing all --sourcemaps false
以上谨以此作为个人观点,不涉及其他。希望对大家有所帮助。