使用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将按定义顺序检查文件夹。如果文件的名称相同,则将提供第一个匹配文件夹中的文件。