В Spring 5.3.2 есть несколько изменений в том, как работает обработка статических файлов. Раньше, если вы хотели получить доступ к файлам, расположенным в папке "/public" или "/resources", вы могли использовать код без необходимости настраивать WebMvcConfigurer
:
@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry .addResourceHandler("/**") .addResourceLocations("classpath:/public/"); } }
Однако, начиная с версии 5.3.2, Spring изменил настройку обработки статических файлов. Теперь есть новый базовый префикс по умолчанию "static". То есть, если у вас есть файл "index.html" в папке "src/main/resources/static", то он будет доступен на пути "/index.html" без необходимости настраивать WebMvcConfigurer
.
Если вы хотите изменить базовый префикс по умолчанию, чтобы файлы искались в другой папке, вы можете использовать WebMvcConfigurer
:
@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry .addResourceHandler("/**") .addResourceLocations("classpath:/custom_folder/"); } }
В этом случае файл "index.html" должен находиться в папке "src/main/resources/custom_folder" и будет доступен по пути "/index.html" при запуске приложения.
Надеюсь, это поможет вам разобраться почему не грузится "index.html" по пути "/" в Spring 5.3.2 без использования WebMvcConfigurer
, и как изменить путь к статическим файлам, если вам это необходимо.