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

Node.js 无法为我的静态资源Express设置缓存控制标头,node.js,reactjs,express,static,Node.js,Reactjs,Express,Static,我在后端使用Express,在前端使用React(创建React应用程序)。 React在client/build/static目录中生成我的所有捆绑资产 app.use(express.static(path.join(__dirname, "..", "client/build/static"), { maxage: 31536000 })) 目录中有三个文件夹css,js,media。我看到他们在开发者控制台的网络选项卡中有一个max age=0 因此,我尝试使用

我在后端使用Express,在前端使用React(创建React应用程序)。 React在
client/build/static
目录中生成我的所有捆绑资产

app.use(express.static(path.join(__dirname, "..", 
    "client/build/static"), {
       maxage: 31536000
}))
目录中有三个文件夹
css
js
media
。我看到他们在开发者控制台的网络选项卡中有一个max age=0

因此,我尝试使用express静态中间件为这些文件夹设置缓存控制头,方法是在
server
目录中的app.js文件中编写以下代码

app.use(express.static(path.join(__dirname, "..", 
    "client/build/static"), {
       maxage: 31536000
}))
但它似乎没有任何效果。有人知道如何在express中设置文件夹的缓存控制吗

编辑:-根据@Giovanny的回答,我进行了修正,但仍然为标题设置了max age=0

我认为这是因为客户端默认设置了请求头


您的代码看起来不错,唯一的问题是您正在设置选项
maxage
,而不是
maxage
。这与预期的效果一样:

app.use(express.static(path.join(__dirname, "..", 
    "client/build/static"), {
       maxAge: 31536000
}))
您可以在此处看到静态文件的选项列表:

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

res.set('Cache-Control', 'client/build/static, max-age=31557600');

我看到一些博客中使用了
maxage
。我的错。我也试过设置maxAge,但似乎仍然不起作用。顺便说一下,maxage也是一个有效的密钥。