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?
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.
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/files/**")
.addResourceLocations("file:/location1/", "file:/location2/");
}
access file using http://localhost :{port}/files/image.png
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.