Javascript node.js express js文件缓存

Javascript node.js express js文件缓存,javascript,node.js,caching,backbone.js,Javascript,Node.js,Caching,Backbone.js,我正在使用SimpleExpress为主干项目提供服务。这是我们使用的文件: 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(allowCross

我正在使用SimpleExpress为主干项目提供服务。这是我们使用的文件:

 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

无法从服务器上清除浏览器缓存。这就是为什么许多框架在静态内容的url之后添加一个版本字符串

如果应用程序版本为3.0.1,则静态内容url应如下所示:

npm存储库中有一个名为
versionator
的可用模块:


我找到了比使用versionator更简单的解决方案

因为我在项目中使用了require.js,所以require.js内置了控制javascript文件的方法: 我使用的是:“urlArgs:”bust=v3“,”

my main.js文件中的段:

require.config({
baseURL: '.',
urlArgs: "bust=v3",
paths: {
    underscore  : 'lib/underscore',
    backbone    : 'lib/backbone',
    babysitter  : 'lib/backbone.babysitter',

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