首页 > 解决方案 > 托管在 Heroku 上的 React 应用程序 - 需要设置 HTTP 标头以避免 304 状态

问题描述

我正在开发一个托管在 Heroku 上的 React 应用程序。这个应用程序与我们的 api 通信,内置在 node/express 中。我最近对我们的数据库模式进行了一些更改(我们使用 mongoDB 和 mongoose),并且在 React 应用程序中进行了一些相关更改,假设更新了数据库模式。如果使用旧模式加载数据,则会导致 React 应用程序中断。这不是问题,除非登录用户使用旧模式缓存数据。我正在尝试找出一种在刷新 React 应用程序时强制重新加载数据的方法,但是刷新 React 应用程序会导致 304 状态错误。手动清除我的浏览器缓存或注销可以解决问题,但我不能指望用户会知道做同样的事情。

React 应用程序有没有办法在初始获取请求时强制清除缓存?我已经进行了大量的研究,提出了诸如app.disable('etag')节点/快递方面的问题,而且很明显状态 304 错误和缓存是服务器端的事情。我猜如果我可以在为我的 React 应用程序发送 get 请求时设置 HTTP 标头,我可以解决这个问题,但我一直无法弄清楚如何去做。欢迎任何想法/建议。

标签: reactjsexpresscachinghttp-headershttp-status-code-304

解决方案


推荐阅读