📅  最后修改于: 2023-12-03 15:30:41.435000             🧑  作者: Mango
在 Express.js 中,使用 express.static()
函数可以很方便地为你的应用程序提供静态资源服务。
express.static(root, [options])
root
必选参数,是静态文件存放的根目录。例如:express.static('public')
,表示静态文件存放在 public
目录中。options
可选参数,是一个对象,包含以下可选属性:dotfiles
:是否对文件名以点开始的文件进行隐藏。默认值为 'ignore'
。etag
:是否启用 HTTP 缓存,默认值为 true
。extensions
:默认扩展名列表。默认值为 false
。fallthrough
:是否允许在找不到文件时继续进行此中间件堆栈中的下一个中间件。默认值为 true
。immutable
:是否启用 immutable 头。默认值为 false
。index
:设置目录的默认文件名。默认值为 'index.html'
。lastModified
:将 Last-Modified 头添加到响应中。默认值为 true
。maxAge
:设置缓存控制 max-age 字段的值(以毫秒为单位)。默认值为 0
。下面是一个使用 express.static()
函数的示例:
const express = require('express');
const app = express();
// 将 public 文件夹提供为静态资源服务
app.use(express.static('public'));
app.listen(3000, () => {
console.log('Server started on port 3000');
});
在上面的示例中,express.static('public')
表示将 public
目录下的文件提供为静态资源服务。我们可以在浏览器上直接访问 http://localhost:3000/file.txt
或 http://localhost:3000/images/logo.png
等文件。
express.static()
函数除了可以接受一个文件目录作为参数外,还支持以下几种用法:
app.use(express.static('public'));
app.use(express.static('files'));
在上面的示例中,我们将 public
和 files
目录下的文件都提供为静态资源服务。
app.use('/static', express.static('public'));
在上面的示例中,我们将 public
目录下的文件提供为静态资源服务,但是在访问时需要加上 /static
前缀,例如:http://localhost:3000/static/file.txt
。
app.use(['/custom1', '/custom2'], express.static('public'));
在上面的示例中,我们将 public
目录下的文件提供为静态资源服务,并支持在访问时添加多个虚拟路径前缀,例如:http://localhost:3000/custom1/file.txt
和 http://localhost:3000/custom2/file.txt
。
express.static()
函数可以让我们非常方便地为应用程序提供静态资源服务,只需要在应用程序中指定一个或多个存放静态资源的目录即可。