NodeJS 在KOA框架中设置头缓存控制

nue99wik  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(118)

我正在使用一个用KOA框架构建的应用程序,我试图弄清楚为什么页面会被缓存。在所有的浏览器中,即使是硬重载也不起作用。您必须清除缓存才能看到页面更新。
我想把它添加到我的index.js中,但我不知道在哪里添加该行。
有人能帮忙吗?

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

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

ttygqcqt

ttygqcqt1#

要将header应用于所有请求,需要编写一个中间件函数**(服务器端)**:

// 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>

相关问题