如何在Express中设置自定义图标?

2022-08-30 02:34:12

我最近开始在Node.js和应用程序中.js文件中有这样一行:

app.use(express.favicon());

现在,我如何设置自己的自定义图标.ico?


答案 1

在快车 4

安装图标中间件,然后执行以下操作:

var favicon = require('serve-favicon');

app.use(favicon(__dirname + '/public/images/favicon.ico'));

或者更好的是,使用模块:path

app.use(favicon(path.join(__dirname,'public','images','favicon.ico')));

(请注意,此解决方案也适用于Express 3应用程序)

在快车 3

根据 API,.favicon 接受一个位置参数:

app.use(express.favicon("public/images/favicon.ico")); 

大多数时候,您可能希望这样做(如 vsync 所建议的那样):

app.use(express.favicon(__dirname + '/public/images/favicon.ico'));

或者更好的是,使用模块(如Druska建议的那样):path

app.use(express.favicon(path.join(__dirname, 'public','images','favicon.ico'))); 

为什么图标静态更好

根据封装说明

  1. 此模块将图标缓存在内存中,以通过跳过磁盘访问来提高性能。
  2. 此模块提供基于内容的图标,而不是文件系统属性。ETag
  3. 该模块将与 最兼容的 .Content-Type

答案 2

无需额外的中间件。只需使用:

app.use('/favicon.ico', express.static('images/favicon.ico'));