阻止浏览器缓存Angular视图

时间:2017-11-17 21:44:31

标签: html angularjs

在我的开发环境中,我配置了BrowserLink,这样每当我在角度应用程序中对HTML / JS进行更改时,浏览器就会重新加载。我注意到有时候我看不到最新的变化。以下两者中的任何一个都修复了它:

  1. 使用Ctrl F5为浏览器强行加载资产
  2. 转到工具 - >清除缓存
  3. 我担心当应用程序投入生产时,用户也会缓存其视图/控制器/服务。

    如何强制浏览器加载最新版本?

1 个答案:

答案 0 :(得分:0)

这称为缓存清除,有a number of tricks you can use for it

就我个人而言,我经常与Laravel合作,在那里我使用Mix自己的版本控制系统对每个版本进行版本化。这样,指向资产的链接指向最新版本。如果你正在使用任何Javascript构建系统,你应该能够找到一个插件来实现它。

如果所有其他方法都失败了,我有时会使用非Laravel PHP应用程序来获取文件上次更改时间的时间戳并将其附加到文件路径,如下例所示:

<img src="<?=$path?>?v=<?=filemtime($path)?>">

该原则也适用于任何其他语言 - 这里是Handlebars助手也是如此:

var fs = require('fs');
var Handlebars = require('handlebars');
Handlebars.registerHelper('version', function (path) {
    return path + '?v=' + fs.statSync(path).mtime.getTime();
});

用其他语言做类似的事情并不难。