javascript - 在 KOA 框架中设置头部缓存控制
问题描述
我正在使用使用 KOA 框架构建的应用程序。我不是开发人员,但我必须尝试找出页面缓存的原因。在所有浏览器中,即使是硬重新加载也不起作用。您实际上必须清除缓存才能看到页面更新。
我想将此添加到我的 index.js 中,但我不知道在哪里添加该行。
任何人都可以帮忙吗?
ctx.set('缓存控制', '无缓存');
我想告诉 KOA 将每个页面的标题设置为不缓存。
解决方案
要将标头应用于所有请求,您需要编写一个中间件函数(服务器端):
// 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>
推荐阅读
- r - tmap 提出带有一个变量的空白地图(但存在值)
- go - 在 Cobra 命令行工具中,如何为不同的标志使用相同的变量?
- c# - 为什么我不能使用这些方法来检查已安装的字体?
- javascript - 关联数组中的 Javascript 函数“不是函数”
- python - 有没有办法将 Google Colab 代码转换为 Web 服务或 REST API
- database - db.session.delete() 或 validate_on_submit() 错误,更新:表单错误
- python - 在作为 Google Cloud Function 运行的 Python 脚本中使用 gcloud 命令时出错
- php - Woocommerce 获取变体 API 并不总是返回新创建的变体
- javascript - 如何检查数组数据是否已经存在于角度
- javascript - Socket.io 发射完成时运行函数