#spring-boot #configuration #static #staticresource
#весенняя загрузка #конфигурация #статический #staticresource
Вопрос:
Я использую SpringBoot 2.1.3. Я хотел бы сохранить некоторый файл внутри статической папки, чтобы получить к нему доступ просто:
localhost:8080/[filename]
По умолчанию Spring boot обслуживает статическое содержимое из одного из следующих местоположений в пути к классу:
1) /static
2) /public
3) /resources
4) /META-INF/resources
По сути, если я создам общую папку внутри моего проекта classpath:
и поместите file.txt внутри него, запуская приложение, я могу визуализировать файл с указанным выше путем.
Погуглив, я выяснил, как добавить пользовательскую статическую папку двумя способами. Первый по application.properties:
spring.resources.static-locations=classpath:/documents/
но даже если я создал папку documents в том же месте, где находится public folder, я не могу получить доступ к файлу по пути:
localhost:8080/[filename]
Второй способ — это конфигурация java @Bean:
@Configuration
@EnableWebMvc
public class AppConfiguration implements WebMvcConfigurer {
@Bean
WebMvcConfigurer configurer () {
return new WebMvcConfigurerAdapter() {
@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/pages/**").
addResourceLocations("classpath:/documents/");
}
};
}
}
и теперь, если я попытаюсь получить свой ресурс с:
localhost:8080/pages/[filename]
не работает вообще..
Любой намек??
Спасибо всем
Комментарии:
1. путь к классу: указывает на src main resources
2. Спасибо. достаточно было написать spring.resources.static-locations=/documents/ и это работает.. но теперь проблема в том, что эта директива перезаписывает другие статические папки по умолчанию. Я больше не могу добраться до всех остальных папок, чем думаю, что буду использовать стандартные.