koa-static静态资源缓存

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}))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值