Skip to content

Express.static

提供静态文件,基于 serve-static

Express
express.static(root, [options])

描述

root 参数指定提供静态资产的根目录。该函数通过将 req.url 与提供的 root 目录组合来确定要服务的文件。当找不到文件时,它不会发送 404 响应,而是调用 next() 以继续下一个中间件,从而允许堆叠和回退。

可选options对象的属性

  • dotfiles – 确定如何处理点文件(以点 "." 开头的文件或目录)。数据类型: 字符串 默认值: "ignore"
  • etag- 启用或禁用 etag 生成注意:express.static 总是发送弱 ETag。数据类型: 布尔值 默认值: true
  • extensions– 设置文件扩展名后备:如果找不到文件,请搜索具有指定扩展名的文件并提供第一个找到的文件(['html', 'htm'])。数据类型: 混合 默认值: false
  • fallthrough- 让客户端错误作为未处理的请求通过,否则转发客户端错误。数据类型 布尔值 默认值: true
  • immutable – 在 Cache-Control 响应标头中启用或禁用 immutable 指令。如果启用,还应指定 maxAge 选项以启用缓存。immutable 指令将阻止受支持的客户端在 maxAge 选项的生命周期内发出条件请求以检查文件是否已更改。数据类型: 布尔值 默认值: false
  • index- 发送指定的目录索引文件。设置为 false 以禁用目录索引。数据类型 混合 默认值: "index.html"
  • lastModified-将 Last-Modified 标头设置为操作系统上文件的最后修改日期。数据类型 布尔值 默认值: true
  • maxAge-设置 Cache-Control 标头的 max-age 属性(以毫秒为单位)或 ms 格式 中的字符串。数据类型 数字 默认值: 0
  • redirect-当路径名是目录时,重定向到尾随 "/"。 数据类型 布尔值 默认值: true
  • setHeaders-用于设置 HTTP 标头以与文件一起服务的功能。 数据类型 函数

express.static 示例

Express
const options = {
  dotfiles: 'ignore',
  etag: false,
  extensions: ['htm', 'html'],
  index: false,
  maxAge: '1d',
  redirect: false,
  setHeaders (res, path, stat) {
    res.set('x-timestamp', Date.now())
  }
}

app.use(express.static('public', options))