AngularJS在开发机器上禁用部分缓存

我在AngularJS中缓存部分有问题。

在我的HTML页面中,我有:

<body>
 <div ng-view></div>
<body>

我的部分被加载。

当我更改HTML代码时,浏览器仍会加载旧数据。

有什么解决方法吗?


对于开发,您也可以停用浏览器缓存 - 在右下角的Chrome开发工具中点击齿轮并勾选选项

禁用缓存(DevTools处于打开状态时)

更新:在Firefox中,在Debugger - > Settings - > Advanced Section中有相同的选项(已针对版本33进行了检查)

更新2:虽然这个选项出现在Firefox的某些报告中,但它不起作用。 我建议使用萤火虫,并遵循hadaytullah的答案。


在@ Valentyn的答案的基础上,有一种方法可以在ng-view内容改变时始终自动清除缓存:

myApp.run(function($rootScope, $templateCache) {
   $rootScope.$on('$viewContentLoaded', function() {
      $templateCache.removeAll();
   });
});

正如其他答案中提到的,在这里和这里,可以使用以下方法清除缓存:

$templateCache.removeAll();

然而,正如gatoatigrado在评论中所建议的那样,只有在html模板没有任何缓存头文件的情况下才能使用。

所以这对我有用:

角度:

app.run(['$templateCache', function ( $templateCache ) {
    $templateCache.removeAll(); }]);

您可能会以各种方式添加缓存标头,但这里有几个适用于我的解决方案。

如果使用IIS ,请将此添加到您的web.config中:

<location path="scripts/app/views">
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="DisableCache" />
    </staticContent>
  </system.webServer>
</location>

如果使用Nginx,你可以将它添加到你的配置中:

location ^~ /scripts/app/views/ {
    expires -1;   
}

编辑

我只是意识到这个问题提到dev机器,但希望这可能仍然有助于某人...

链接地址: http://www.djcxy.com/p/68983.html

上一篇: AngularJS disable partial caching on dev machine

下一篇: Google Play Store APK