AngularJS动态站点的缓存最佳实践?

AngularJS动态站点的缓存最佳实践?,angularjs,caching,Angularjs,Caching,我正在做一个AngularJS项目,它将有相当大的流量 在开发过程中,我偶然发现一个问题,即缓存了部分内容,而没有对不同的操作进行更新。当然,我可以使用$templateCache.removeAll()运行;例如 但我想确定这确实是个好主意 有些部分是动态更新的(用户输入,或自动间隔),而有些是静态的或很少更新 在这种情况下,最好的缓存方法是什么 对于无角度的站点,我更愿意保持职责的清晰划分,例如: 1.缓存头是在应用程序级别设置的 2.nginx-仅服务于站点本身 3.Varnish为静态资

我正在做一个AngularJS项目,它将有相当大的流量

在开发过程中,我偶然发现一个问题,即缓存了部分内容,而没有对不同的操作进行更新。当然,我可以使用$templateCache.removeAll()运行;例如 但我想确定这确实是个好主意

有些部分是动态更新的(用户输入,或自动间隔),而有些是静态的或很少更新

在这种情况下,最好的缓存方法是什么

对于无角度的站点,我更愿意保持职责的清晰划分,例如: 1.缓存头是在应用程序级别设置的 2.nginx-仅服务于站点本身 3.Varnish为静态资产执行FPC+CDN,或CDN执行整页缓存(取决于客户机/项目等)等。 关键点:每个部分都有自己独特的职责

在这个项目中,我可以使用清漆和CDN作为静态资产, 多服务器设置。也可以将Varnish重新用于负载平衡,即,我可能在多个web节点上使用Varnish。我在基础设施方面有一定的灵活性

请分享您对最佳设置的想法? 特别是:是否仍然值得缓存分区? 如果是,设置CC标题的最佳位置是什么? 那么,刷新缓存的最佳方法是什么,特别是如果我只需要刷新某些子选择

谢谢!!
D.

自己发布答案,因为无法选择rob的回复作为答案。我的解决方案基于他的建议,他的建议帮助我取得了很大进展:

在生产构建期间:

  • 我正在使用“gulp rev easy”gulp模块来加速以前的版本 连接和丑陋的css&js文件
  • 然而,没有任何现有的revving模块可以为我提供我所需要的功能:用我自己的指向CDN的CSS和JS脚本的路径替换index.html模板文件中的特定字符串。所以我不得不添加我自己的函数/重写revasy一点
  • 根据rob的我已经开始使用templatecache,它与revving结合使用效果非常好
  • 图像只是通过S3->CDN对传输
  • 一些简要说明:

  • 使用加速来“破坏”缓存结果是最快和最可靠的 处理缓存的最简单方法,因为CloudFront大约需要20分钟 使路径无效的分钟数,其他CDN-更少,但您仍然有 发出请求等
  • 用于具有相同名称的动态更新图像,如化身图像 如果用户可以通过其个人资料区域进行更新,我建议添加 将时间戳或一些随机字符串添加到文件名。在添加 随机URL路径听起来更简单,您将无法缓存此路径
  • 希望这有帮助,
    Dennis

    我会将所有html模板连接到一个js文件中,然后使用