无法为我的静态资源Express设置缓存控制标头

问题描述 投票:1回答:1

我在后端使用Express,在前端使用React(create-react-app)。 React在client/build/static目录中生成我所有的捆绑资产

该目录中有三个文件夹:qazxsw poi,qazxsw poi,qazxsw poi。我看到他们在开发者控制台的网络选项卡中有一个max-age = 0。

因此,我尝试使用快速静态中间件为这些文件夹设置Cache-Control标头,方法是在我的app.js文件中编写以下代码,该文件位于css目录中

js

但它似乎没有任何影响。有谁知道如何将Cache-Control设置为express中的文件夹

编辑: - 按照@ Giovanny的回答,我进行了整改,但我仍然为标题设置了max-age = 0

media

我认为这是因为客户端的请求标头的默认设置?

server

node.js reactjs express static
1个回答
4
投票

你的代码看起来正确,唯一的是你设置选项app.use(express.static(path.join(__dirname, "..", "client/build/static"), { maxage: 31536000 })) 而不是request headers。这按预期工作:

request headers

您可以在此处查看静态文件的选项列表:maxage

您可以使用另一种方式指定缓存控制标头,它将相应地进行缓存。想法是在任何输出之前添加对res.set()的调用。

maxAge
© www.soinside.com 2019 - 2024. All rights reserved.