为了提供像单页应用程序 (SPA) 这样的静态内容,我们可以使用 @nestjs/serve-static
包中的 ServeStaticModule
。
安装
首先,我们需要安装所需的包:
bash
$ npm install --save @nestjs/serve-static
Bootstrap
安装过程完成后,我们可以将 ServeStaticModule
导入根 AppModule
,并通过将配置对象传递给 forRoot()
方法来对其进行配置。
ts
import { join } from 'node:path'
import { Module } from '@nestjs/common'
import { ServeStaticModule } from '@nestjs/serve-static'
import { AppController } from './app.controller'
import { AppService } from './app.service'
@Module({
imports: [
ServeStaticModule.forRoot({
rootPath: join(__dirname, '..', 'client'),
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
完成这些后,构建静态网站并将其内容放置在 rootPath
属性指定的位置。
配置
ServeStaticModule 可以配置各种选项来自定义其行为。 您可以设置渲染静态应用程序的路径、指定排除的路径、启用或禁用设置 Cache-Control 响应标头等。请参阅 此处 的完整选项列表。
静态应用程序的默认 renderPath
为 *
(所有路径),模块将发送index.html
文件作为响应。
它允许您为 SPA 创建客户端路由。控制器中指定的路径将回退到服务器。
您可以通过设置 serveRoot
、renderPath
并将其与其他选项组合来更改此行为。
示例
此处 提供了一个有效示例。