2013-11-04 106 views
13

在表達我添加Expires頭到我的靜態文件這樣如何添加expires頭中的Node.js/Express中的favicon.ico

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中添加expires頭部到favicon?
與其他靜態文件相比,favicon.ico請求有什麼不同?

Thx!

+0

什麼req.url當favicon.ico的傳遞什麼樣的?它是否在運行你的app.use - 函數? – hgoebl

+0

+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()); 
      } 
    })) 
0

這裏的答案是正確的,但有點過時,不再支持這個中間件,所以簡單的修復就是使用這個包。

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) 

代碼是直接從上面的鏈接...