koa框架中引入koa-chche-control插件响应头不起作用

发布于 2022-09-03 19:14:10 字数 1300 浏览 12 评论 0

var send = require('koa-send');
var Koa = require('koa');
var app = new Koa();
var Router = require('koa-router');
var cors = require('koa-cors');
var koaBody = require('koa-body')();
var cacheControl = require('koa-cache-control');
var router = new Router({
    prefix: '/public'
});
app.use(gzip());
app.use(cors())
    .use(router.routes())
    .use(router.allowedMethods());
    **app.use(cacheControl({
    maxAge: 500
}));**
router.get('/:fname/:cname', koaBody, function*() {
    var fname = this.params.fname;
    var cname = this.params.cname;
    console.log("文件类型" + fname);
    console.log("文件名" + cname);
    yield send(this, "./public/" + fname + "/" + cname);
})

var port = 8003;
app.listen(port);
console.log(` 启动成功,端口: ${port}`);

FireBug返回如下
返回头,maxAge=0;
ccess-Control-Allow-Methods →GET,HEAD,PUT,POST,DELETE
Access-Control-Allow-Origin →*
Cache-Control →max-age=0
Connection →keep-alive
Content-Type →image/jpeg
Date →Thu, 22 Sep 2016 08:02:04 GMT
Last-Modified →Wed, 14 Sep 2016 07:42:52 GMT
Transfer-Encoding →chunked
content-encoding →gzip
不知道为何设置了max-age到测试时还是没有显示出来、
附上插件地址https://github.com/DaMouse404...,小白请指教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城孤痞 2022-09-10 19:14:10

因为你中间件的位置位置放到路由的后面了,根本就没到cache-control。 放到前面就好了,修改如下

var send = require('koa-send');
var Koa = require('koa');
var app = new Koa();
var Router = require('koa-router');
var cors = require('koa-cors');
var koaBody = require('koa-body')();
var cacheControl = require('koa-cache-control');
var router = new Router({
    prefix: '/public'
});
app.use(gzip());
// put the middleware before your routers
app.use(cacheControl({
    maxAge: 500
}));
app.use(cors())
    .use(router.routes())
    .use(router.allowedMethods());
router.get('/:fname/:cname', koaBody, function*() {
    var fname = this.params.fname;
    var cname = this.params.cname;
    console.log("文件类型" + fname);
    console.log("文件名" + cname);
    yield send(this, "./public/" + fname + "/" + cname);
})

var port = 8003;
app.listen(port);
console.log(` 启动成功,端口: ${port}`);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文