我一直在研究这个问题,这很简单:
现代浏览器(chrome/FF)会缓存一些东西,比如 html 页面等等。
当您发布新版本时,Angular 会获取这些模板。但是,由于浏览器提供这些页面的缓存版本,而不是新的更新版本。
我读过大约 2000 篇关于如何实现这一目标的文章。
没有一个“元”标签对我有用..(例如:使用 标签关闭所有浏览器中的缓存? https://stackoverflow.com/questions/1341089/using-meta-tags-to-turn-off-caching-in-all-browsers)
唯一有效的方法是通过添加一些参数值来手动管理文件的版本http://bla.com?random=39399339 http://bla.com?random=39399339。
然而,如果只是有时需要“清除缓存”(主要是在版本之间),这确实很烦人并且极难维护。
浏览器是否有可能不提供一种简单的、受控的方式来手动“清除缓存”。是通过服务器还是客户端方式?
附:
Angular 模板使其更加难以管理。
这是一个有很多答案的问题,这取决于您的服务器等......
- 通常 HTML 文件不会被缓存
- AngularJS 在第一次调用模板后使用 $templateCache 服务(在应用程序运行时)缓存模板
- 您可以将 html2js 与 grunt 或 gulp 结合使用,将模板编译到一个 JavaScript 文件中
- 很多人不依赖客户端缓存、etag 等...而是向静态资源 uri 添加版本、哈希、后缀和/或前缀
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)