Подтвердить что ты не робот

Как добавить заголовок expires в favicon.ico в Node.js/Express

В 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 следующим образом.

Есть ли способ добавить заголовок expires в favicon в Node/Express?
Что делает запрос favicon.ico настолько отличным от других статических файлов?

спасибо!

4b9b3361

Ответ 2

Я думаю, что использование этого более удобного для SEO

app.use(express.static(__dirname + '/public', {
        maxAge: 86400000,
        setHeaders: function(res, path) {
            res.setHeader("Expires", new Date(Date.now() + 2592000000*30).toUTCString());
          }
    }))

Ответ 3

Ответ здесь верный, но немного устаревший, поскольку выражение больше не поддерживает это промежуточное ПО, поэтому легко исправить это использование этого пакета.

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)

Код находится прямо по ссылке выше...