在KOA Frame中设置标题缓存控制

时间:2018-07-20 21:09:59

标签: javascript node.js caching koa

我正在使用使用KOA框架构建的应用程序。 我不是开发人员,但我必须设法弄清为什么页面要缓存。在所有浏览器中,即使进行硬重装也不起作用。您实际上必须清除缓存才能看到页面更新。

我想将此添加到我的index.js中,但我不知道在哪里添加行。

有人可以帮忙吗?

ctx.set('Cache-Control','no-cache');

我想告诉KOA将每个页面的标题设置为不缓存。

1 个答案:

答案 0 :(得分:2)

要将标头应用于所有请求,您需要编写中间件函数(服务器端)

// set header function
function setNoCacheHeaders(ctx) {
  ctx.set('Cache-Control', 'no-store, no-cache, must-revalidate')
  ctx.set('Pragma', 'no-cache')
  ctx.set('Expires', 0)
}

// Middleware that adds the header to all requests
app.use(async (ctx, next) => {
    await next()
    setNoCacheHeaders(ctx)
})

希望有帮助...

另外一点:如果(浏览器-)缓存的javascript文件有问题,您可以通过使用版本字符串或随机数作为查询参数来请求它来强制使用它。这样的事情可能会强制重新加载您的JavaScript (客户端)

<script type="text/javascript">
    document.write('<scr'+'ipt src="/js/file.js?'+Math.random()+'" type="text/javascript"></scr'+'ipt>');
</script>