我试图在我的NestJs文档中添加一个自定义的favicon。然而,我对路径文件是如何解析的有点困惑,也不知道如何实现这一点。
我正在使用nestjs/swagger模块版本3.1.0,并试图在初始化Swagger模块时传递路径文件。
我的main.ts文件
SwaggerModule.setup('/v1/docs', app, document, {
customCss: CUSTOM_STYLE,
customSiteTitle: 'My API Documentation',
customfavIcon: './public/favicon.jpg'
});
字符串
我在github上搜索了问题,没有找到任何有用的东西。正如你从代码中看到的,我可以修改CSS样式,但我不知道如何自定义favicon。
感谢任何帮助
4条答案
按热度按时间kmb7vmvb1#
我已经添加了自定义的favicon到我的swagger文档使用以下:
首先要确保的是,在
main.ts
中,应用程序初始化如下:字符串
要提供静态内容,您必须使用
NestExpressApplication
初始化应用。接下来是允许Nest应用程序在初始化后在
main.ts
中使用以下内容查找公共内容:型
另外,在应用程序的根目录下创建一个公共目录,并将
favicon.jpg
文件粘贴到其中。现在是时候在
main.ts
中初始化Swagger了型
您必须给予一个相对路径到根的应用程序,如
../favicon.jpg
的情况下,我们的main.ts
是在src
文件夹中的根应用程序。zmeyuzjn2#
替代解决方案,只需托管您的favicon并使用外部url引用它
字符串
ckx4rj1h3#
为了验证pravindot17的答案,现在有了
@nestjs/serve-static
包来托管静态文件。这避免了我们对Nest.js客户端进行类型转换,并依赖于我们运行的是一个由JavaScript支持的Nest.js服务器的隐式假设。安装完包后,将其挂接到
src/app.module.ts
中。此配置要求项目的根目录中有一个/public/
文件夹,用于存储静态资产。字符串
现在,我自己的首选是使用绝对路径而不是相对路径,因为这使它独立于我们选择的托管API文档的路径。
型
最后一点要注意的是,此配置托管来自
/static/*
的静态文件,这样做是为了防止对不存在的端点的API调用向最终用户显示找不到静态文件的错误消息。否则,所有不存在的端点上的404将看起来像这样:
型
1cosmwyk4#
我按照pravindot17说的说明操作,但它对我来说是有效的,我在
nest-cli.json
(nest CLI配置文件)中的compilerOptions
上添加"assets": ["public/**/*"]
,如下所示,因为Nest没有在dist文件夹上构建公共文件夹:nest-cli.json
:字符串