使用 Nest 设置两个不同的静态文件夹

Posted

技术标签:

【中文标题】使用 Nest 设置两个不同的静态文件夹【英文标题】:Setup two different static folders with Nest 【发布时间】:2019-06-25 19:29:58 【问题描述】:

我想使用 Nest 服务于两个静态应用程序。基本上这意味着我有一个像

这样的公用文件夹
/public
       /admin
       /main

我在窝里

app.useStaticAssets(join(__dirname, '..', 'public/main'));

现在,如果我转到 http://localhost:3000,它将为 /public/main/index.html 提供服务。这很好,但是,当我导航到 http://localhost:3000/admin 我想要 /public/admin/index.html

一种解决方案是将/main 中的所有内容直接复制到public 中,但这会使我的构建过程复杂化,而且我觉得我需要的东西非常简单,因为在快递中你可以做到

app.use('/admin/*', app.useStaticAssets(join(__dirname, '..', 'public/admin')));
app.use(app.useStaticAssets(join(__dirname, '..', 'public/')))

类似这样的东西(未经测试,但感觉不错:))

【问题讨论】:

【参考方案1】:

您可以使用prefix 选项来创建虚拟路径前缀:

app.useStaticAssets(join(__dirname, '..', 'public/admin'), prefix: '/admin');

【讨论】:

非常感谢,成功了。你也有关于这个主题的文档的网址吗? 很高兴它为您工作。 :-) 我不认为这是在文档中,我只是检查了ServeStaticOptions 接口。代码文档非常好。 好的,谢谢下次我会这样做!

以上是关于使用 Nest 设置两个不同的静态文件夹的主要内容,如果未能解决你的问题,请参考以下文章

在 Nest.js 中,如何在我的 API 响应中提供与我的 JSON 对象捆绑在一起的静态内容文件

nest.js学习静态资源配置和模板引擎+服务Service+cookie+session

怎么实现动态设置静态文件存储目录?

怎么实现动态设置静态文件存储目录?

Nest.js 为模型创建静态和实例函数的方法是啥?

如何设置NGINX以根据位置(在相同的server_name下)部署不同的单页应用程序(SPA的...即静态文件)和子路由