防止角度模板的浏览器缓存

Tom*_*mer 10 html javascript caching angularjs

我一直在研究这个问题,这个问题非常简单:现代浏览器(chrome/FF)是缓存内容,html页面等等.
当您发布新版本时,angular GET这些模板.但是,由于浏览器提供这些页面的缓存版本而不是新的更新版本.

我已经阅读了关于如何实现这一点的2000篇文章..没有"meta"标签对我有用..(例如:使用<meta>标签关闭所有浏览器中的缓存?)唯一有效的方法是通过添加一些参数值http://bla.com?random=39399339手动管理文件的版本.然而,如果有时只需要"清除缓存"(主要是版本之间),这真的很烦人并且非常难以维护.

有没有机会浏览器不提供手动"清除缓存"的简单,受控方式.无论是在服务器还是客户端方式?

PS Angular模板使管理变得更加困难.

Tho*_*och 0

这是一个有很多答案的问题,这取决于您的服务器等......

  • 通常 HTML 文件不会被缓存
  • AngularJS 在第一次调用模板后使用 $templateCache 服务(在应用程序运行时)缓存模板
  • 您可以将 html2js 与 grunt 或 gulp 结合使用,将模板编译到一个 JavaScript 文件中
  • 很多人不依赖客户端缓存、etag 等...而是向静态资源 uri 添加版本、哈希、后缀和/或前缀

  • 不幸的是,静态 HTML 文件通常会被缓存。 (4认同)