在ExpressJS中更改“expires”标题?

我尝试了以下,但过期设置为1分钟:

app.get(['/css/*','/js/*'],express.static('public',{maxAge:7*86400000})); app.get(['/fonts/*'],express.static('public',{maxAge:30*86400000})); 

如何使用ExpressJS设置到期时间? 在上面的代码中,我试图设置到期时间分别为1周和1个月。

您使用Express静态 ,它是完美的罚款,这是相当强大的工具来提供静态文件。

express.static是Express中唯一的内置中间件。 它基于服务静态 ,并负责为一个Express应用程序的静态资产提供服务。

除了maxage的支持,它也支持ETags 。

就这样使用它:

app.use(express.static(__dirname + '/public', { maxage: '1d' }));

这是非常好的解释 。

使用https://github.com/expressjs/serve-static
例:

 var express = require('express') var serveStatic = require('serve-static') var app = express() app.get(['/css/*','/js/*'],express.static('public',{maxAge:7*86400000})); app.get(['/fonts/*'],express.static('public',{maxAge:30*86400000})); function setCustomCacheControl(res, path) { if (serveStatic.mime.lookup(path) === 'text/html') { // Custom Cache-Control for HTML files res.setHeader('Cache-Control', 'public, max-age=0') } } app.use(serveStatic(__dirname + '/public/css/', { maxAge: '7d', setHeaders: setCustomCacheControl })) app.use(serveStatic(__dirname + '/public/js/', { maxAge: '7d', setHeaders: setCustomCacheControl })) app.use(serveStatic(__dirname + '/public/fonts/', { maxAge: '30d', setHeaders: setCustomCacheControl })) app.listen(3000)