Jersey 2:正确渲染Swagger静态内容而不用斜杠(/)

mac*_*ers 5 html javascript url swagger

我所做的是使用Grizzly/ Jersey来托管swagger-ui,这是静态内容.

这是以下部分build.gradle:

compile 'org.glassfish.jersey.core:jersey-server:2.22.1'
compile 'org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.22.1'
compile 'org.glassfish.jersey.containers:jersey-container-grizzly2-servlet:2.22.1'
Run Code Online (Sandbox Code Playgroud)

以下是使用以下方法配置静态内容的方法Grizzly:

httpServer = GrizzlyWebContainerFactory.create(uri);
httpServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler("swagger-ui"), "/swagger");
Run Code Online (Sandbox Code Playgroud)

swagger-ui 是项目根文件夹下的文件夹.

我访问http://localhost/swagger/一切都很好,但是当我尝试时http://localhost/swagger,它只提供一个没有渲染的简单页面,似乎所有css/js文件都丢失了: 在此输入图像描述

我想知道在没有尾部斜杠(/)的情况下制作url的最佳方法是什么是与斜杠斜杠相同的方法.

更新:我已经向swagger-ui提出了一张票:https://github.com/swagger-api/swagger-ui/issues/1966但它说这是Grizzly另一张票的配置问题Grizzly:https:// java .NET/JIRA /浏览/灰熊-1823

现在找不到解决方案.我正在考虑使用另一个Web服务器.

Zou*_*out 0

我可以确认(正如 alexey 评论的那样)这个问题已经在 Grizzly 的最新版本中得到修复。

您可以将其添加到您的版本号中pom.xml或更新版本号

<dependency>
    <groupId>org.glassfish.grizzly</groupId>
    <artifactId>grizzly-http-server</artifactId>
    <version>2.3.28</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

Grizzly 会自动从不带尾部斜杠的 url 返回 301 重定向,到带尾部斜杠的 url。