我正在使用简单 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

最佳答案

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

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

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

npm存储库上有一个名为versionator的可用模块供您使用:

  • https://github.com/serby/versionator
  • 关于javascript - node.js表示JS文件缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20763637/

    10-12 02:22