首页 > 解决方案 > Express:提供依赖于 cookie 的静态文件

问题描述

我想提供依赖于特定 cookie 的静态文件。

假设 cookie语言的值为“en”,我想提供 dist/browser/en。

像这样的东西:

app.use(express.static(path.join(__dirname, '../../client/dist/browser/',req.cookies.language), { maxAge: '2d'}));

我知道这不起作用,因为我无法访问此处的 req,但高度赞赏如何实现这一点的提示。

标签: node.jsexpress

解决方案


您不能express.static()以“动态”方式使用根据请求中的信息确定它的作用。调用它是express.static()有原因的,路线是静态的,并且对每个人都做同样的事情。

要动态提供数据,您必须编写自己的路由来检查 cookie,然后找到适当的文件并将该文件作为响应流回。 express-static是基于模块的,您可以在此处serve-static查看源代码。这不是很复杂。


推荐阅读