Durandal缓存问题/版本控制策略

Ale*_*ton 16 single-page-application durandal

对Durandal js和html文件进行版本控制的好策略是什么?

我注意到,在开发过程中,必须禁用浏览器缓存,以便在每次刷新时接收最新文件.这是开发过程中必须的.

但是,我担心的是,当我使用我的持续部署策略(每天多次部署)进行生产时,用户的浏览器将缓存我的应用程序的旧版本,这可能会导致不可预测的行为.

想到的方法是以某种方式对js和html url进行版本化,以便在每个请求中嵌入版本号.但我不确定如何在Durandal框架内部进行这项工作.

Ale*_*ton 27

好的,这是我前进的方向.基本上有一些内置于requirejs来处理这个问题.

在我的main.js的顶部,在对requirejs.config的调用中,我可以设置一个urlArgs属性,该属性将附加到requirejs对模块的每个调用.

requirejs.config({
    paths: {
        'text': 'durandal/amd/text'
    },
    urlArgs: 'v=1.0.0.0'
});
Run Code Online (Sandbox Code Playgroud)

当我想强制生产用户获得requirejs模块的新版本时,我只能增加版本号,这将使浏览器缓存无效.

(在我的项目中,我有一种方法可以将包含我的主要ASP.NET MVC程序集的程序集的版本号注入此属性,但是这样的代码会分散上述示例的简单性).

希望这有助于某人!