Node.js 提供静态文件

示例

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

例如,您可能拥有文件系统中保留的静态文件,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.htmlscript.js和“ public”文件夹中的所有文件将在根路径中可用(您不能/public/在url中指定)。这是因为,express查找相对于配置的静态文件夹的文件。您可以指定  虚拟路径前缀,如下所示:

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

将使资源在/static/前缀下可用。

多个文件夹

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

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

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