java.net.URL删除`file` URL的绝对路径的一部分

时间:2019-06-19 11:38:03

标签: java spring-boot spring-mvc

我试图确保在Spring Boot应用程序中配置ResourceHandlerRegistry将支持基于路径的静态资源,例如:

registry
  .addResourceHandler("/static/**")
  .addResourceLocations("file:///home/alex");

但是我的资源是404,例如执行GET localhost:8080/static/blah/1234.txt无法解决。

我注意到单步执行PathResourceResolver代码会进行以下调用:

Resource resource = location.createRelative(resourcePath);

针对file方案网址的结果导致调用FileUrlResource.createRelative并返回新的FileUrlResource

return new FileUrlResource(new URL(getURL(), relativePath));

实际上这是错误的URL,因为从getURL()返回的URL的绝对路径的最后一部分被截断了,例如:

new java.net.URL(new URL("file:///home/alex"), "blah.txt")

导致:

file:/home/blah.txt

这对我来说似乎是错误的。

有什么想法吗?

0 个答案:

没有答案