【发布时间】:2015-03-31 21:52:13
【问题描述】:
我在不提供任何 JSP 的 Web 服务上使用 Spring 4.1.5 和 Boot 1.2。我不想添加 JSP servlet,但我希望它提供单个金丝雀页面,该页面以更漂亮的 html 类型格式显示将在/manage/health 端点提供的信息。
我在webapp/canary/canary.html 中有一个文件,我想从 url 提供这个文件:www.mywebservice.com:9343/canary,完全一样,不是 canary.html
我试过这样做:
@Configuration
public class CanaryConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/canary")
.addResourceLocations("/canary/canary.html");
}
}
但这不起作用。
它期望处理程序提供一个文件名。所以换句话说,位置应该是这样的:/canary/
处理程序会是这样的:/canary/**
这样,www.mywebservice.com:9343/canary/canary.html 的 URL 就可以发挥作用了。
但是,我希望 URL 将 www.mywebservice.com:9343/canary 解析为 webapp/canary/canary.html,而无需键入 html。
这在 jsp servlet 中真的很容易,因为您可以设置后缀等...
我查看了ResourceResolver,但我不知道如何将其链接到我当前的配置中。
看起来像我想要的:
提供将传入请求解析为实际资源并获取客户端在请求资源时应使用的公共 URL 路径的机制。
见:ResourceResolver Documentation
任何帮助都会非常有益。
另外我很清楚我可以把html放在resources/static和其他几个自动配置的地方。这总是需要输入 .html ,在这种情况下这不是我想要的,所以它不起作用。谢谢!
【问题讨论】:
标签: java spring spring-mvc servlets spring-boot