我试图确保在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
这对我来说似乎是错误的。
有什么想法吗?