📜  Express.js express.static()函数(1)

📅  最后修改于: 2023-12-03 15:30:41.435000             🧑  作者: Mango

Express.js express.static()函数介绍

在 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.txthttp://localhost:3000/images/logo.png 等文件。

更多用法

express.static() 函数除了可以接受一个文件目录作为参数外,还支持以下几种用法:

1. 多个静态资源目录
app.use(express.static('public'));
app.use(express.static('files'));

在上面的示例中,我们将 publicfiles 目录下的文件都提供为静态资源服务。

2. 虚拟路径前缀
app.use('/static', express.static('public'));

在上面的示例中,我们将 public 目录下的文件提供为静态资源服务,但是在访问时需要加上 /static 前缀,例如:http://localhost:3000/static/file.txt

3. 支持多个虚拟路径前缀
app.use(['/custom1', '/custom2'], express.static('public'));

在上面的示例中,我们将 public 目录下的文件提供为静态资源服务,并支持在访问时添加多个虚拟路径前缀,例如:http://localhost:3000/custom1/file.txthttp://localhost:3000/custom2/file.txt

结语

express.static() 函数可以让我们非常方便地为应用程序提供静态资源服务,只需要在应用程序中指定一个或多个存放静态资源的目录即可。