提供静态文件

使用 Express 构建 Web 服务器时,通常需要提供动态内容和静态文件的组合。

例如,你可能有 index.html 和 script.js,它们是保存在文件系统中的静态文件。

通常使用名为 public 的文件夹来拥有静态文件。在这种情况下,文件夹结构可能如下所示:

project root
├── server.js
├── package.json 
└── public
    ├── index.html
    └── script.js

这是如何配置 Express 以提供静态文件:

const express = require('express');
const app = express();

app.use(express.static('public'));

注意:配置文件夹后,index.html,script.js 和 public 文件夹中的所有文件都将在根路径中可用(你不能在 URL 中指定/public/)。这是因为,express 查找相对于配置的静态文件夹的文件。你可以指定虚拟路径前缀,如下所示:

app.use('/static', express.static('public'));

将使用/static/前缀提供资源。

多个文件夹

可以同时定义多个文件夹:

app.use(express.static('public'));
app.use(express.static('images'));
app.use(express.static('files'));

在提供资源时,Express 将按定义顺序检查文件夹。如果文件名相同,则将提供第一个匹配文件夹中的文件。