как добавить заголовок expires в favicon.ico в узле.js / Express
В 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 Date(Date.now() + 345600000).toUTCString());
}
});
app.use(express.static(root + '/app'));
то, что я не могу сделать, это поймать favicon.запрос ico, как это.
есть ли способ добавить заголовок expires в favicon в Node / Express?
Что делает фавикон.запрос ico настолько отличается от других статических файлов?
Thx!
3 ответов
Вы можете пройти maxAge
опции как favicon и статический промежуточного :
app.use(express.favicon(__dirname + '/public/favicon.ico', { maxAge: 2592000000 }));
источники :
Я думаю, что используя вместо более дружественных SEO
app.use(express.static(__dirname + '/public', {
maxAge: 86400000,
setHeaders: function(res, path) {
res.setHeader("Expires", new Date(Date.now() + 2592000000*30).toUTCString());
}
}))
ответ здесь правильный, но немного устаревший, поскольку 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)
код находится прямо по ссылке выше...