node.js表达JS文件缓存

Ent*_*eXL 6 javascript caching node.js backbone.js

我使用简单快递来服务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 !!!");
});
Run Code Online (Sandbox Code Playgroud)

每个部署项目都使用require.js(r.js)进行优化.文件是Concenated,minified和uglified并部署到生产服务器.

问题如下.假设我将缓存设置为15天.在第3天,我们部署了新项目,意味着新版本.客户端浏览器不会提取新的javascript文件,因为它已经兑现了它们并且有效.

如何欺骗浏览器删除新文件的缓存?

感谢:D

dam*_*hat 4

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

如果您的应用程序版本是 3.0.1,您的静态内容 url 应如下所示:

http://example.com/js/jquery.js?v=3.0.1

npm 存储库中有一个可用的模块可供您使用versionator