NestJS Swagger UI无法加载,浏览器报错求助
Swagger UI加载失败问题
浏览器报错导致Swagger UI无法加载(错误截图:Swagger加载错误)。
我的Swagger文档配置代码(main.ts)
const config = new DocumentBuilder() .setTitle('Truffles API') .setDescription('Truffles API description') .setVersion(DEFAULT_VERSION) .addTag('Truffles') .addBearerAuth() .build(); console.log(config); const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup(`${basePath}/docs`, app, document, { swaggerUrl: `${basePath}/docs-json`, });
排查与解决建议
- 验证
basePath路径拼接:直接在浏览器访问${basePath}/docs-json对应的实际地址,看是否能正常返回Swagger JSON文档。如果路径拼接错误(比如多斜杠、路径不存在),会导致UI加载失败。可以手动打印${basePath}/docs-json的值确认路径合法性。 - 完善Bearer认证配置:默认的
addBearerAuth()可能缺少必要参数,导致Swagger UI解析认证规则出错。可以修改为:.addBearerAuth( { type: 'http', scheme: 'bearer', bearerFormat: 'JWT' }, 'access-token' // 认证标识,可选 ) - 检查
DEFAULT_VERSION有效性:确保DEFAULT_VERSION是合法的字符串(比如'1.0'),如果是undefined或非字符串类型,会导致Swagger文档生成异常。 - 确认版本兼容性:检查
@nestjs/core和@nestjs/swagger的版本是否匹配,版本不兼容可能引发这类加载问题,可参考NestJS官方文档调整版本。
内容的提问来源于stack exchange,提问作者Auralshin
相关产品推荐
相关产品推荐

