Issue
I'd like to add a resource folder relative to the location of the jar (in addition to packaged resources within my jar), for example:
/Directory
Application.jar
/resources
test.txt
I've tried the following:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/", "file:/resources/");
}
I've also tried:
.addResourceLocations("/resources/", "file:resources/");
Accessing http://localhost:8080/resources/test.txt
with either setup leads to a whitelabel error page. How can I resolve this?
Solution
Your second approach would work:
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/", "file:resources/");
}
but only if you launched Spring Boot from /Directory
, because file:resources/
is a relative path.
cd Directory
java -jar Application.jar
It's nice if you can pack everything into the jar, but if you have to reference external resources, you should use absolute paths to avoid problems like this.
Answered By - approxiblue