在Express中,我将过期标题添加到我的静态文件中,如此
app.use(function (req, res, next) {
// static folder: css
if (req.url.indexOf('/css/') === 0) {
res.setHeader('Cache-Control', 'public, max-age=345600'); // 4 days
res.setHeader('Expires', new Date(Date.now() + 345600000).toUTCString());
}
});
app.use(express.static(root + '/app'));
我不能做的就是抓住这样的favicon.ico请求。
有没有办法在Node / Express中将过期标题添加到favicon?
是什么让favicon.ico请求与其他静态文件相比如此不同?
THX!
答案 0 :(得分:11)
您可以将maxAge
选项传递给favicon和静态中间件:
app.use(express.favicon(__dirname + '/public/favicon.ico', { maxAge: 2592000000 }));
来源:
答案 1 :(得分:6)
我认为使用它更具有SEO友好性
app.use(express.static(__dirname + '/public', {
maxAge: 86400000,
setHeaders: function(res, path) {
res.setHeader("Expires", new Date(Date.now() + 2592000000*30).toUTCString());
}
}))
答案 2 :(得分:0)
这里的答案是正确的,但有点过时了,因为express不再支持这个中间件,所以最简单的解决方法就是使用这个软件包。
https://github.com/expressjs/serve-favicon
var connect = require('connect')
var favicon = require('serve-favicon')
var path = require('path')
var app = connect()
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')))
// Add your middleware here, etc.
app.listen(3000)
代码正好来自上面的链接......