chrome浏览器中的控制台Network中size栏的三种状态
from memory cache
对应资源从内存上获取,不会发起请求,当关闭改网页时,此资源会被释放
from disk cache
对应资源从硬盘直接获取,不会再发起请求,当关闭网页时,此资源不会被释放
资源大小数值
当http状态为200是实实在在从浏览器获取的资源
如图:
koa-static
安装
npm install koa-static
参数
const Koa = require('koa');
const app = new Koa();
app.use(require('koa-static')(root, opts));
root根目录字符串。此根目录之上的任何内容均无法提供
opts 选项对象。
opts 选项对象
maxage:浏览器缓存的最大寿命(以毫秒为单位)。默认为0
hidden:允许传输隐藏文件。默认为false
index:默认文件名,默认为“ index.html”
defer:如果为true,则在服务之后return next(),允许任何下游中间件首先响应。
gzip:当客户端支持gzip且所请求的扩展名为.gz的文件存在时,请尝试自动提供文件的gzip压缩版本。默认为true。
br:当客户端支持brotli且请求的扩展名为.br的文件存在时,请尝试自动提供文件的brotli版本(请注意,仅通过https接受brotli)。默认为true。
setHeaders:函数,用于在响应时设置自定义标头。
extensionsURL:中没有扩展名时,尝试匹配传递数组中的扩展名以搜索文件。首先找到的是送达。(默认为false)
例子
const Koa = require('koa')
const static = require("koa-static")
let app = new Koa()
// // 重写URL,改掉/public
app.use(async (ctx, next) => {
// 判断,如果当前请求是以/public开头, 重写其url再放行
if (ctx.request.url.startsWith('/public')) {
ctx.request.url = ctx.request.url.replace('/public', '');
}
// else 不是/public开头,统一放行
await next();
});
//处理静态资源,maxage为缓存时间,单位为毫秒
app.use(static(path.resolve('./public'),{maxage:100000}))