翻译自Github Egg项目页

直达戳我

egg-static

静态服插件,基础与koa的静态插件 koa-static-cache.

安装

1
$ npm i egg-static --save

使用

在Egg的官方手册里是这样介绍的

Egg 内置了 static 插件,线上环境建议部署到 CDN,无需该插件。

static 插件默认映射 /public/* -> app/public/* 目录

此处,我们把静态资源都放到 app/public 目录即可:

1
2
3
4
5
6
app/public
├── css
│ └── news.css
└── js
├── lib.js
└── news.js

使用

如果没有特别的要求,egg的脚手架对这个功能是默认开启的,在配置文件plugin.js里可以选择开启或关闭:

1
2
// had enabled by egg
exports.static = true;

配置

egg-static 支持 koa-static-cache中的所有配置。 支持的配置如下:

  • prefix: /public/
  • dir: path.join(appInfo.baseDir, 'app/public')
  • dynamic: true
  • preload: false
  • maxAge: 31536000 in prod env, 0 in other envs
  • buffer: true in prod env, false in other envs

egg-static 提供了一个更多的选项

  • maxFiles: 缓存项目的最大值,仅在动态为true时有效,默认为“1000”

所有的静态文件位于 $baseDir/app/public 在模版或调用的地方可以用 /public访问。所有的文件都会被加载

  • 在非生产环境中,数据不会被缓存,修改可以立即生效。
  • 在生产环境中,egg-static将在访问后缓存数据,需要重新启动更新数据。
  • 默认目录是 $baseDir/app/public 但是可以定义多个目录dir: [dir1, dir2, ...] 在加载的时候服务器会加载这些目录
1
2
3
4
// {app_root}/config/config.default.js
exports.static = {
// maxAge: 31536000,
};

License

MIT