【问题标题】:Spring boot web app - not able to pick the static contentSpring Boot Web 应用程序 - 无法选择静态内容
【发布时间】:2022-01-02 00:35:50
【问题描述】:

带有 angular bundle 的 Spring Boot Web 应用程序在早些时候运行良好
然后我添加了一个 gradle 依赖项,这是一个在我的组织内构建的库,用于实现一些 api 调用。之后,视图/角度构建不会被 Spring Boot 应用程序拾取。

我的项目结构如下所示

web-app\
    src\main\java\
                   WebApplication.java
            \resources\public\index.html
                      \public\main.5214684651aera5146.js
                      \public\styles.3asd44654e1asd135fsdf.js
                      \public\other-angular-build-files
                       application.properties

我没有通过实现WebMvcConfigurer 添加任何视图控制器/资源处理程序。 Spring boot 能够选择 index.html 文件作为欢迎页面,我可以在 http://localhost:8080 上看到该页面。


但是现在它不起作用,我已经浏览了下面的文章并尝试了不同的视图位置 - publicstaticresourcesMETA-INF\resources 但没有锻炼。
@ 987654321@

有人可以帮助我如何调试此问题或覆盖 MVC 配置,以便我的 Spring Boot 应该选择 index.html 作为欢迎页面。

【问题讨论】:

  • 如果不知道该库做了什么,将无法回答,无论赏金如何。但一个疯狂的猜测是,该库有一个带有@EnableWebMvc 的配置,它禁用了 web 部件的 spring boot 自动配置。
  • 是的,但是是否可以覆盖这样的配置并分配优先顺序?
  • 您只能不加载该配置,但这会破坏我要说的库的目的。但它仍然可能是一个答案,我并不是说它是 the 答案。在不知道所有这些信息的情况下(但通常我的怀疑是正确的),这基本上是不可能回答的,我们只能提出问题。因此,请使用 @EnableWebMvc 检查该库的配置类,并要求库维护者将其删除。
  • 有道理,谢谢@Deinum。
  • 不确定您是否尝试使用直到index.html 的完整路径,即http://localhost:8080/index.html,只是为了确定某些配置是否没有覆盖默认页面。

标签: spring spring-boot spring-mvc web-applications


【解决方案1】:

除了 M. Deinum 答案之外,您还可以尝试仅在您的应用程序中限制 @ComponentScan 并从库中的类手动创建 bean

【讨论】:

  • 如果库是正确的库,它将包含spring.factories 和朋友,然后将其从@Componentscan 中排除是行不通的。
猜你喜欢
  • 2017-03-01
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2021-10-16
  • 2014-05-14
  • 1970-01-01
  • 2018-12-28
相关资源
最近更新 更多