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