node.js表示JS文件caching
我正在使用简单的快递服务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)进行优化。 文件被集中,缩小,并且被部署到生产服务器。
问题如下。 假设我将caching设置为15天。 而在第三天,我们部署了新的项目,这意味着新的版本。 客户端浏览器不会提取新的JavaScript文件,因为它已经有了兑现和有效。
如何欺骗浏览器使用新文件删除caching?
感谢:D
无法从服务器清除浏览器caching。 这就是为什么许多框架在静态内容的url之后添加一个版本string。
如果你的应用程序版本是3.0.1,你的静态内容url应该是这样的:
http://example.com/js/jquery.js?v=3.0.1
在npm版本库上有一个名为versionator
的可用模块:
我发现更简单的解决scheme,然后使用版本。
因为我使用require.js的项目,事实certificate,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',
- 哪个JavaScript MVC / MVVM是SEO友好的?
- 前端JavaScript框架与node.js
- Node.js和Backbone.marionette初始视图
- Backbone.js – 在ajax中获取视图,模型或集合属性'beforeSend'
- 如何使用带有Node.js和AMD的Backbone Model(浏览器上的require.js)
- Node.js / express.js / Backbone.js:req.body.keys是未定义的?
- 服务客户端Jade模板
- 如何使用browserify捆绑骨干应用程序?
- HTTP响应头中'Allow'和'Access-Control-Allow-Methods'之间的区别?