【问题标题】:Set header cache control in KOA Frame work在 KOA 框架中设置头部缓存控制
【发布时间】:2018-12-29 05:31:44
【问题描述】:

我正在使用一个使用 KOA 框架构建的应用程序。 我不是开发人员,但我必须尝试找出页面缓存的原因。在所有浏览器中,即使是硬重新加载也不起作用。您实际上必须清除缓存才能看到页面更新。

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

谁能帮忙?

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

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

【问题讨论】:

    标签: javascript node.js caching koa


    【解决方案1】:

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

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

    【讨论】:

    • Pragma 暂时不再需要了。是时候放下那个标题了。实际上Cache-Control 将得到任何人的支持。
    猜你喜欢
    • 2011-10-01
    • 2018-06-19
    • 2013-04-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2023-04-08
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多