84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
如图所示
请求中带有If-None-Match和If-Modified-Since头,响应中也含有Etag和Last-Modified头,并且etag相等,Last-Modified也符合。理论上应该返回304 Not Modified吧。可是我试了好几次,每次都是200ok,没有利用缓存。服务端用的是koa和koa-etag中间件。该怎么办呢?
欢迎选择我的课程,让我们一起见证您的进步~~
解决了,原因是我的服务端没有写相关处理逻辑,本以为koa-etag和koa-static这两个中间件自动设置的。。。解决办法是,自己写返回304的逻辑。
app.use(async (ctx, next) => { await next(); if (ctx.fresh) { ctx.status = 304; } });
通过ctx.fresh来判断是否过期,没有则设置响应为304。
你看看这个有没影响:https://segmentfault.com/q/10...
解决了,原因是我的服务端没有写相关处理逻辑,本以为koa-etag和koa-static这两个中间件自动设置的。。。
解决办法是,自己写返回304的逻辑。
通过ctx.fresh来判断是否过期,没有则设置响应为304。
你看看这个有没影响:https://segmentfault.com/q/10...