Как обслуживать статические ресурсы в домашнем каталоге пользователя

У меня есть несколько изображений в папке ~/YYT/ProfilePicture. Я хочу, чтобы весенняя загрузка обслуживала эти изображения как статические ресурсы. URL-адрес запроса похож на «http://localhost:8080/ProfilePicture/4/takeovertheworld.jpg». Я попытался написать свойство spring.resources.static-locations=file:~/YYT/ в файле application.properties. Я также пробовал использовать WebMvcConfigurer. Ни один из них не работает.

@Configuration
public class WebStaticResourceConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        String homeDirectory = "file:" + Paths.get(System.getProperty("user.home"), "YYT/ProfilePicture").toString();
        System.out.println(homeDirectory);
        registry.addResourceHandler("/ProfilePicture/**").addResourceLocations(homeDirectory);
    }
}
1
0
255
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Путь должен быть изменен, как показано ниже:

spring.resources.static-locations=file:/YYT/
Ответ принят как подходящий

В вашем homeDirectory отсутствует завершающий /.

Используйте path.toUri(), чтобы сгенерировать действительный uri и использовать его впоследствии.

Path path = Paths.get(System.getProperty("user.home"), "YYT/ProfilePicture");
String homeDirectory = path.toUri().toString();
registry.addResourceHandler("/ProfilePicture/**").addResourceLocations(homeDirectory);

Теперь строка homeDirectory должна быть правильной.

Другие вопросы по теме