超过一年后不复活,但先前的所有答案都遗漏了一些关键点:
@EnableWebMvc
在你的班级上将被禁用org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration
。如果你想要完全控制,那很好,但是否则,这是一个问题。- 除了已经提供的内容外,无需编写任何代码即可为静态资源添加其他位置。看着
org.springframework.boot.autoconfigure.web.ResourceProperties
从v1.3.0.RELEASE
,我看到一个字段staticLocations
,可以在配置application.properties
。这是源代码片段:
private String[] staticLocations = RESOURCE_LOCATIONS;
如前所述,请求URL将相对于这些位置进行解析。因此,
src/main/resources/static/index.html
当请求网址为时将投放/index.html
。从Spring 4.1开始,负责解析路径的类是org.springframework.web.servlet.resource.PathResourceResolver
。后缀模式匹配默认是启用的,这意味着对于请求
URL /index.html,Spring
将寻找与对应的处理程序/index.html
。如果目的是提供静态内容,则这是一个问题。要禁用该功能,请扩展WebMvcConfigurerAdapter
(但不要使用@EnableWebMvc
)并覆盖configurePathMatch
如下所示:
@Overridepublic void configurePathMatch(PathMatchConfigurer configurer) { super.configurePathMatch(configurer); configurer.setUseSuffixPatternMatch(false);}恕我直言,在你的代码中减少错误的唯一方法是不尽可能编写代码。使用已经提供的内容,即使需要进行一些研究,回报也是值得的。



