如何在Node.js/Express中将expires头添加到favicon.ico
在Express中,我向静态文件添加expires头,如下所示如何在Node.js/Express中将expires头添加到favicon.ico,node.js,express,favicon,expires-header,Node.js,Express,Favicon,Expires Header,在Express中,我向静态文件添加expires头,如下所示 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
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请求
是否有方法将expires标头添加到Node/Express中的favicon?是什么使favicon.ico请求与其他静态文件如此不同
谢谢 您可以将
maxAge
选项传递给favicon和静态中间件:
app.use(express.favicon(__dirname + '/public/favicon.ico', { maxAge: 2592000000 }));
资料来源:
我认为用它来代替搜索引擎优化更友好
app.use(express.static(__dirname + '/public', {
maxAge: 86400000,
setHeaders: function(res, path) {
res.setHeader("Expires", new Date(Date.now() + 2592000000*30).toUTCString());
}
}))
这里的答案是正确的,但是有点过时,因为express不再支持这个中间件,所以简单的解决方法是使用这个包
代码就在上面的链接中…交付favicon.ico时,req.url是什么样子的?它是否在你的app.use-function中运行?+1是一个很好的代码参考。谢谢
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)