Не поднимать мертвых спустя больше года, но все предыдущие ответы пропускают некоторые важные моменты:
@EnableWebMvc
на вашем классе отключит org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration
. Это нормально, если вы хотите полный контроль, но в остальном это проблема. org.springframework.boot.autoconfigure.web.ResourceProperties
из v1.3.0.RELEASE, я вижу поле staticLocations
, которое можно настроить в application.properties
. Вот фрагмент из источника: /**
* Locations of static resources. Defaults to classpath:[/META-INF/resources/,
* /resources/, /static/, /public/] plus context:/ (the root of the servlet context).
*/
private String[] staticLocations = RESOURCE_LOCATIONS;
src/main/resources/static/index.html
будет использоваться, когда URL-адрес запроса /index.html
. Класс, который отвечает за разрешение пути, начиная с Spring 4.1, - org.springframework.web.servlet.resource.PathResourceResolver
. /index.html
, Spring будет искать обработчиков, соответствующих /index.html
. Это проблема, если целью является статический контент. Чтобы отключить это, продолжите WebMvcConfigurerAdapter
(но не используйте @EnableWebMvc
) и переопределите configurePathMatch
, как показано ниже: @Override
public void configurePathMatch(PathMatchConfigurer configurer) {
super.configurePathMatch(configurer);
configurer.setUseSuffixPatternMatch(false);
}
IMHO, единственный способ уменьшить количество ошибок в вашем коде не писать код, когда это возможно. Используйте то, что уже было предоставлено, даже если это потребует некоторых исследований, возвращение того стоит.