我们有一个网络应用程序(我们为浏览器平台构建),我们的用户可以使用他们在移动设备上的浏览器访问它(对于那些不想使用应用程序本身的人来说,这是一个后备)。
我们有很多次(不总是而且只针对几个用户)在代码发生重大变化后,这些用户无法正确使用应用程序,因为在他们清除浏览器缓存之前文件不会更新。
我们已经尝试了几种解决方案来“强制”客户端从服务器重新加载更新后的文件,但没有成功。
我们尝试将 no-cahce 设置为我们的 nginx 配置。 尝试将时间戳添加到索引文件。 尝试设置自定义服务 worker 。 到目前为止,我们仍然遇到一些用户,在他们清除缓存之前,它无法正常工作。
有什么建议吗?有没有办法强制客户端在更新后重新下载更新的文件? 有没有办法更改 ionic build设置以在所有生成的文件中包含时间戳或类似内容?
谢谢:)
最佳答案
我设法解决了这个问题。 解决方案是向 ionic build 生成的页面文件添加哈希。
此行需要添加到 webpack.js 文件的顶部:
var useDefaultConfig = require('@ionic/app-scripts/config/webpack.config.js');
然后在module.exports函数中添加以下内容:
useDefaultConfig.prod.output['chunkFilename'] = "[name].[chunkhash].chunk.js";
这会导致生成的文件在每次构建时都以不同的方式散列。
关于angular - Ionic 3, angular 5 - webapp 的缓存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52944792/