在Node.js服务器中服务favicon有什么用途
当浏览器第一次加载网站时,它会自动请求 /favicon.ico (GET)以加载favicon。favicon是一种小尺寸文件,也称为网站图标、标签图标、URL图标或书签图标。serve-favicon模块用于从NodeJS服务器中提供favicon。
为什么要使用这个模块?
- 用户代理经常且不加选择地请求favicon。在logger中间件之前使用这个中间件,以排除这些请求的日志记录。
- favicon.ico是小尺寸文件,该模块将favicon缓存在内存中,通过跳过磁盘访问来提供更好的性能。
- 该模块为图标提供了ETag。
- 该模块为图标提供了兼容的Content-Type。
项目设置和模块安装:
-
步骤1: 创建一个NodeJS应用程序,并使用以下命令命名为Project。
mkdir Project && cd Project
npm init -y
- 步骤2: 使用以下命令安装依赖模块。
npm install express serve-favicon
-
步骤3: 从此处生成一个favicon或下载GFG favicon,并将其放在根目录中。然后在Project目录中创建index.html和server.js。
项目目录: 将会是这样的。
示例:
index.html
<!DOCTYPE html>
<html>
<head>
<title>GeeksForGeeks</title>
</head>
<body>
<h1 style="color: green;">
GeeksForGeeks
</h1>
</body>
</html>
server.js
// Import modules
const favicon = require('serve-favicon');
const express = require('express')
const app = express()
// Returns a middleware to serve favicon
app.use(favicon(__dirname + '/favicon.ico'));
// API endpoint to serve index
app.get('/', (_, res)=> res.sendFile(__dirname + '/index.html'))
// Start the server
app.listen(8080);
运行应用程序的步骤: 使用以下命令运行 server.js
node server.js
输出: 打开浏览器并访问 http://localhost:8080/ ,在屏幕上我们将看到以下输出。
注意: 请记住, serve-favicon 仅提供 默认的、隐式的 favicon ,其路径为 GET /favicon.ico 。 若要使用供应商特定的需要 HTML 标记的图标,请使用 serve-static 。