Javascript Jersey 2:正确渲染Swagger静态内容,无尾随斜杠(/)
我所做的是使用Javascript Jersey 2:正确渲染Swagger静态内容,无尾随斜杠(/),javascript,html,url,swagger,Javascript,Html,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-
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'
以下是如何使用Grizzly
配置静态内容:
httpServer = GrizzlyWebContainerFactory.create(uri);
httpServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler("swagger-ui"), "/swagger");
swagger ui
是项目根文件夹下的文件夹
当我访问http://localhost/swagger/
但是当我尝试http://localhost/swagger
,它只提供了一个没有呈现的简单页面,似乎所有css/js文件都丢失了:
我想知道,让没有尾随斜杠(/)的url与有尾随斜杠的url相同的最佳方法是什么
更新:
我已经向swagger ui提出了一个问题:但它说这是灰熊
的配置问题,所以灰熊
的另一个问题是:
现在找不到解决方案。我正在考虑使用另一个web服务器。我相信您要么想要映射到HTML文件swagger-ui.HTML,要么想要提供jar,您可以试试这个 更新: 问题在于灰熊路线。例如,如果您查看浏览器错误日志,您将看到它正在尝试从非加载 我找不到任何关于Grizzly如何进行路由的信息,而且似乎不一致。例如,加载index.html很好,但不加载位于同一路径上的swagger-ui.js。我使用过其他服务器,比如Nginx,来提供静态文件,但没有像我们这样的问题 一种解决方法是分别映射每个swagger ui文件夹,或者您可以通过使用,将swagger部署为单个JAR,正如我在评论中所说的那样。我还研究了使用通配符,但没有任何运气
httpServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler("<basepath>/lib"),"/lib");
httpServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler("<basepath>/css"),"/css");
...
httpServer.getServerConfiguration().addHttpHandler(新的StaticHttpHandler(“/lib”),“/lib”);
httpServer.getServerConfiguration().addHttpHandler(新的StaticHttpHandler(“/css”),“/css”);
...
我可以确认(正如alexey所评论的)这一点在最近版本的Grizzly中已经得到了修复
您可以将其添加到pom.xml
或更新版本号
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-http-server</artifactId>
<version>2.3.28</version>
</dependency>
org.glassfish.grizzly
grizzly http服务器
2.3.28
Grizzly将自动返回一个301重定向,从url(不带尾随斜杠)重定向到带有尾随斜杠的url。您能否详细说明如何映射到HTML文件swagger ui.HTML?您是否也托管了一个动态生成的swagger文档?例如,我们使用Springfox托管文档和swagger ui,Springfox负责将web服务器配置为托管swagger ui。请参见“是”,我将使用
swagger
导出我的restful api。但是对于swagger用户界面,我只使用从GuiHub下载的静态内容。你看过Springfox吗?除非您有其他要求,否则我会使用它部署Swagger UI。还没有,我不想将Springfox
导入到我的项目中,因为已经有一个用于Swagger
的web容器Grizzly
。一切都很好,只是想让/swagger
正常工作,因为/swagger/
将在Grizzly 2.3.25中修复