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

Jea*_*eri 4 javascript node.js express typescript nestjs

我想使用 Nest 为两个静态应用程序提供服务。基本上这意味着我有一个公共文件夹,例如

/public
       /admin
       /main
Run Code Online (Sandbox Code Playgroud)

在巢中我做

app.useStaticAssets(join(__dirname, '..', 'public/main'));
Run Code Online (Sandbox Code Playgroud)

现在,如果我去,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/')))
Run Code Online (Sandbox Code Playgroud)

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

Kim*_*ern 5

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

app.useStaticAssets(join(__dirname, '..', 'public/admin'), {prefix: '/admin'});
Run Code Online (Sandbox Code Playgroud)