Node.js Express JS 文件缓存

7

我正在使用简单的Express来提供Backbone项目。这是我们使用的文件:

 app.configure('production', function () {
 var myTime = 432000;         //5 days
 app.set('port', process.env.PORT || 80);
 app.use(express.bodyParser());
 app.use(express.methodOverride());
 app.use(allowCrossDomain);
 app.use(app.router);    
 app.use(express.static(__dirname + './../',  { maxAge: myTime } ));
 console.log("SERVING !!!");
});

每个部署项目都使用require.js(r.js)进行优化。文件将被合并、压缩和混淆,并部署到生产服务器。
问题是这样的:假设我设置了15天的缓存时间。在第3天,我们部署了新版本的项目。客户端浏览器不会拉取新的javascript文件,因为它们已经被缓存并且有效。
如何欺骗浏览器,以删除其缓存并使用新文件?
谢谢:D
2个回答

4

听起来是一个完美的解决方案。我会尝试一下,并在这里发布结果。 - EnterpriseXL

1
我发现了比使用 versionator 更简单的解决方案。
由于我在项目中使用了 require.js,事实证明 require.js 有内置方法来控制 JavaScript 文件: 我正在使用:"urlArgs: "bust=v3","...
来自我的 main.js 文件的片段:
require.config({
baseURL: '.',
urlArgs: "bust=v3",
paths: {
    underscore  : 'lib/underscore',
    backbone    : 'lib/backbone',
    babysitter  : 'lib/backbone.babysitter',

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接