【发布时间】:2015-08-16 20:10:03
【问题描述】:
此问题AngularJS disable partial caching on dev machine 建议使用$templateCache.removeAll() 清除缓存模板。但是,如果您只想在每个部署周期中触发一次以让访问者浏览器刷新/更新模板怎么办?我们的问题是一些浏览器没有更新模板 html 文件,我们最终会得到新的 CSS 与旧的 HTML 混合。我不希望这个函数一直触发,这会破坏缓存模板的开始(对吗?)。
根据标题问题,“一次”清除 $templateCache 的推荐方法是什么,例如我总结的一些想法:
- Angular 是否有检测模板文件是否已更改的内部方法?然后如果是这样“更新”它。
- Angular 是否有一个内部“版本”或“日期”,我们可以比较并添加一个触发函数 removeAll() 的条件?
- $templateCache 本身是否知道刷新?如果 HTML 文件必然会随着时间的推移而变化并提供给多个浏览器,那么 Angular 创建者强迫我们使用 templateCache 的意图是什么。
我不想使用 grunt 为周期性发生的事情增加工作流开销,也不想将 html 文件模板分割成变量。 (Is this a good method for template cache busting in angular?)
我可以看到的替代方法是手动添加和删除 removeAll() 代码,这很愚蠢。
【问题讨论】:
-
您好,liquified,很高兴听到您设法为此找到实用的解决方案!
标签: javascript angularjs caching deployment refresh