angular - Ionic 3, angular 5 - webapp 的缓存问题

标签 angular ionic-framework caching web-applications

我们有一个网络应用程序(我们为浏览器平台构建),我们的用户可以使用他们在移动设备上的浏览器访问它(对于那些不想使用应用程序本身的人来说,这是一个后备)。

我们有很多次(不总是而且只针对几个用户)在代码发生重大变化后,这些用户无法正确使用应用程序,因为在他们清除浏览器缓存之前文件不会更新。

我们已经尝试了几种解决方案来“强制”客户端从服务器重新加载更新后的文件,但没有成功。

我们尝试将 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/

相关文章:

CakePHP 3.x : Cache paginated search

asp.net-mvc - Firefox 存储了缓存的不完整响应

c# - 从 C# 调用具有多个参数的 Angular 4 路由器

angular - 如何操作不同 mat-card 元素的 mat-card-header-text 类?

angular - 如何捕获 angular(ionic) 中的 http 错误?

asp.net - IIS 7.0 应用程序池在站点之间共享 - 缓存是否在站点之间共享?

angular - Angular 2.0 Material MdDialog 与 Angular 2.0 的工作示例

angular - ngrx 4 中的服务器支持撤消/重做

ubuntu - 找不到模块 '@ionic-native/Camera/ngx'

ionic-framework - 如何从 ionic 2/3 或 ionic V2+ 项目中删除已安装的 ionic cordova 插件