You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS Fastify微服务中EJS视图引擎配置及文件未打包问题求助

解决NestJS Fastify微服务中EJS视图引擎配置问题

1. 安装必要依赖

先补全视图引擎相关依赖:

npm install ejs @fastify/view

2. 配置Nest CLI同步模板文件到dist

Nest默认只编译.ts文件,需要修改nest-cli.json让构建时自动复制EJS模板到dist目录:

{
  "$schema": "https://json.schemastore.org/nest-cli",
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    "deleteOutDir": true,
    "assets": ["src/views/**/*"], // 复制src/views下所有文件
    "watchAssets": true // 开发时监听模板变化自动同步
  }
}

3. 修正视图引擎路径配置

构建后模板会被放到dist/views,调整setViewEngine的路径配置:

方式一:基于__dirname拼接

import { join } from 'path';
import * as ejs from 'ejs';

// 构建后当前文件在dist/src目录,向上一级到dist后指向views
app.setViewEngine({
  engine: { ejs },
  templates: join(__dirname, '..', 'views'),
});

方式二:基于项目根目录拼接(更直观)

templates: join(process.cwd(), 'dist', 'views'),

4. 验证配置

  • 执行npm run build,检查dist目录下是否生成views文件夹及对应EJS文件
  • 启动生产环境服务npm run start:prod,测试视图渲染接口确认模板加载正常

内容的提问来源于stack exchange,提问作者excitedHipster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:52:07