Добавить папку внешних ресурсов в Spring Boot

Я хотел бы добавить папку ресурсов относительно местоположения банки (в дополнение к упакованным ресурсам в моей банке), например:

/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 С любой настройкой приводит к странице ошибки whitelabel. Как я могу это решить?

1 ответов


второй подход будет работать:

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**")
            .addResourceLocations("/resources/", "file:resources/");
}

но только если вы запустили Spring Boot из /Directory, потому что file:resources/ - это относительный путь.

cd Directory
java -jar Application.jar

приятно, если вы можете упаковать все в банку, но если вам нужно ссылаться на внешние ресурсы, вы должны использовать абсолютные пути чтобы избежать подобных проблем.