Spring 未生成启动 webjars,已返回 Http 406

Spring boot webjars not generated, Http 406 returned

出于某种原因 bootstrap webjars 没有被复制到目标中,因此无法找到它们。

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
</parent>

...

<dependency>
        <groupId>org.webjars</groupId>
        <artifactId>bootstrap</artifactId>
        <version>4.1.3</version>
</dependency>

资源处理程序:

@Configuration
@EnableWebMvc
public class WebConfiguration implements WebMvcConfigurer {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/*");
    registry.addResourceHandler("/resources/").addResourceLocations("/resources/");
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}

我静态的某处resources

...
<script src="webjars/bootstrap/4.1.3/js/bootstrap.min.js"></script>
...

/target 中没有生成任何内容 知道我错过了什么吗? 我在这上面花了几个小时,并且在 google 搜索中也到达了第二页。

我会回答我自己的问题。

我永远不会说这可能是个问题,但显然 @GetMapping 注释破坏了我的 UI。我仍然没有弄清楚问题出在哪里。我刚找到解决方案。

所以我用Thymeleaf来解决我的看法

@Controller
public class ViewController {

    @GetMapping("/")
    public String home() {
        return "/home";
    }
}

当我使用传统的 Restful 控制器时显然会发生冲突

@RestController(value = "/face-detection")
public class FaceDetectController {

@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE) {
...

这首单曲 @GetMapping 打破了整个 UI。 我所要做的只是在映射

中添加 /
@GetMapping(value ="/", produces = MediaType.APPLICATION_JSON_VALUE)

然后整个事情神奇地开始起作用了。 github 深处某处的类似问题: https://github.com/springfox/springfox/issues/1647