我想相对于jar的位置添加一个资源文件夹(除了jar中的打包资源),例如:
/Directory Application.jar /resources test.txt
我尝试了以下方法:
@Override public void addResourceHandlers(final ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("/resources/", "file:/resources/"); }
我也尝试过:
.addResourceLocations("/resources/", "file:resources/");
http://localhost:8080/resources/test.txt使用任何一种设置进行访问都会导致出现白标错误页面。我该如何解决?
http://localhost:8080/resources/test.txt
您的第二种方法可行:
@Override public void addResourceHandlers(final ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("/resources/", "file:resources/"); }
但 仅 当您从启动Spring Boot时/Directory,因为file:resources/它是相对路径。
/Directory
file:resources/
cd Directory java -jar Application.jar
如果可以将所有内容打包到jar中,这很好,但是如果必须引用外部资源,则应该使用绝对路径来避免此类问题。