黑人的命也是命。
支持平等正义倡议.

serve-favicon

NPM Version NPM Downloads Linux Build Windows Build Test Coverage

用于提供网站图标的 Node.js 中间件。

网站图标是客户端软件(如浏览器)用来识别网站的视觉提示。有关示例和更多信息,请访问 维基百科关于网站图标的文章

为什么要使用此模块?

  • 用户代理会频繁且无差别地请求 favicon.ico,因此您可能希望在日志记录中间件之前使用此中间件将这些请求从日志中排除。
  • 此模块将图标缓存在内存中,以通过跳过磁盘访问来提高性能。
  • 此模块提供基于图标内容的 ETag,而不是文件系统属性。
  • 此模块将使用最兼容的 Content-Type 提供服务。

注意 此模块专门用于提供“默认隐式 favicon”,即GET /favicon.ico。对于需要 HTML 标记的其他特定于供应商的图标,需要额外的中间件来提供相关文件,例如 serve-static.

安装

这是一个通过 npm 注册表 可用的 Node.js 模块。安装使用 npm install 命令 完成。

$ npm install serve-favicon

API

favicon(path, options)

创建新的中间件,从给定的path到 favicon 文件提供 favicon。path 也可以是将要提供的图标的Buffer

选项

提供 favicon 在选项对象中接受这些属性。

maxAge

cache-control max-age 指令以ms为单位,默认为 1 年。这也可以是 ms 模块接受的字符串。

示例

通常,此中间件将在您的堆栈中非常早地出现(甚至可能是第一个),以避免在已知请求是针对/favicon.ico时处理任何其他中间件。

express

var express = require('express')
var favicon = require('serve-favicon')
var path = require('path')

var app = express()
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')))

// Add your routes here, etc.

app.listen(3000)

connect

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)

普通 http 服务器

此中间件可以在任何地方使用,即使在 express/connect 之外。它接受reqrescallback

var http = require('http')
var favicon = require('serve-favicon')
var finalhandler = require('finalhandler')
var path = require('path')

var _favicon = favicon(path.join(__dirname, 'public', 'favicon.ico'))

var server = http.createServer(function onRequest (req, res) {
  var done = finalhandler(req, res)

  _favicon(req, res, function onNext (err) {
    if (err) return done(err)

    // continue to process the request here, etc.

    res.statusCode = 404
    res.end('oops')
  })
})

server.listen(3000)

许可证

MIT