Skip to content
On this page

koa-static

简介

koa-static 是一个用于提供静态文件服务的 Koa 中间件,它可以将本地目录下的文件(如图片、CSS、JavaScript 等)作为静态资源提供给客户端访问。

安装

bash
npm install koa-static

基本使用

javascript
const Koa = require('koa');
const serve = require('koa-static');
const path = require('path');

const app = new Koa();

// 基本用法
app.use(serve(path.join(__dirname, 'public')));

// 带选项的用法
app.use(serve(path.join(__dirname, 'public'), {
  maxage: 24 * 60 * 60 * 1000, // 浏览器缓存时间
  gzip: true, // 启用 gzip 压缩
  index: 'index.html' // 默认文件
}));

配置选项

  • maxage: 浏览器缓存时间(以毫秒为单位)
  • hidden: 是否允许传输隐藏文件
  • index: 默认文件名,默认为 'index.html'
  • defer: 是否推迟响应,允许后续中间件先响应
  • gzip: 是否启用 gzip 压缩
  • br: 是否启用 brotli 压缩
  • setHeaders: 自定义响应头设置函数
  • extensions: 允许的文件扩展名数组

高级用法

javascript
const Koa = require('koa');
const serve = require('koa-static');
const mount = require('koa-mount');

const app = new Koa();

// 多个静态目录
app.use(serve('./public'));
app.use(serve('./uploads'));

// 挂载到特定路径
app.use(mount('/assets', serve('./static')));

// 自定义响应头
app.use(serve('public', {
  setHeaders: (res, path, stats) => {
    res.setHeader('X-File-Path', path);
  }
}));

注意事项

  1. 静态文件中间件应该放在其他路由中间件之前
  2. 合理设置缓存时间,平衡性能和实时性
  3. 生产环境建议使用 Nginx 等专业的静态文件服务器
  4. 注意文件权限和安全性,避免暴露敏感文件
  5. 大文件传输考虑使用流式传输和断点续传
  6. 合理使用压缩选项,减少传输数据量
  7. 正确配置 MIME 类型,确保文件正确解析

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命