0

我们正在更新我们的文档并为生成的页面添加品牌。我们使用了此处描述的输入 ( https://quarkus.io/blog/stylish-api/ )。但是,由于某种原因,样式在本地工作(在开发模式下启动 Quarkus 时)但不能在容器技术中运行(我们尝试了 OpenShift 和 Docker 映像。没有应用 css,没有更改徽标。不适用于登录页面而不是生成的招摇页面。是否有一些设置/我们需要额外做的事情才能让它工作?

在 application.properties 中设置了以下属性

quarkus.swagger-ui.title=Title
quarkus.swagger-ui.filter=true
quarkus.swagger-ui.enable=true
quarkus.swagger-ui.always-include=true

我怀疑在构建容器映像时,Quarkus 没有获取任何其他资源(在 META-INF 中)。

结构:

\resources
  \META-INF
   application.properties
     beans.xml
     \branding
        logo.png
        style.css
     \resources
        favicon.ico
        index.html

我们可以看到 /swagger-ui/style.css 是不同的。在 dev 中运行构建过程将 style.css 从品牌目录复制到 /swagger-ui。这在构建图像时(显然)不会发生。

/swagger-ui/ 文件夹位于运行器 jar 中的 META_INF 下。它包含错误的 css(原始 css)。在开发模式下运行 quarkus 显然会从不同的位置(可能是品牌位置并替换原始位置)提供此文件夹。

这显然是 Maven 构建中的一些东西。

4

2 回答 2

1

默认情况下,Swagger UI 仅在 Quarkus 在开发或测试模式下启动时可用。

如果您也想让它在生产中可用,您可以在 application.properties 中包含以下配置:

quarkus.swagger-ui.always-include=true

https://quarkus.io/guides/openapi-swaggerui#use-swagger-ui-for-development

于 2021-03-25T18:45:02.213 回答
0

quarkus-maven-plugin 需要一个额外的目标(准备)以便在正确的位置包含 css。

            <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <version>${quarkus-plugin.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare</goal>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

在此之后应用样式。

于 2021-03-26T11:22:40.673 回答