【问题标题】:Spring Web Flux cannot resolve path to static contentSpring Web Flux 无法解析静态内容的路径
【发布时间】:2017-11-06 12:33:24
【问题描述】:

我正在使用带有 WebFlux 的 Spring Boot 2.0.0 M1 来构建我的示例 Web 应用程序。在 REST 端点成功后,我决定向我的应用程序添加一些视图。我决定使用 Thymeleaf 3.x 版本。我知道 Spring 从 4 个默认位置提供静态内容:

  • /META-INF/resources/
  • /资源/
  • /静态/
  • /公共/

我决定使用第二个示例,因此我的 css 文件位于 /resources/static/css/ 中。但是,在加载我的页面后,找不到 .css 文件。 这是我的 IDE 的屏幕截图:

我没有为静态目录提供我自己的配置,我只想使用默认配置。可能重要的是模板从 /resources/templates/ 目录加载得很好。

css文件是这样加载的:

<link data-th-href="@{css/bootstrap.min.css}" rel="stylesheet">

App 没有使用普通的 Controller 类,而是我提供了作为 Bean 的函数来定义我的路由器:

@Bean
RouterFunction<?> router(final GeneratorHandler generatorHandler) {
    return route(GET("/generate"), handler::render);
}

有什么想法吗?

【问题讨论】:

标签: spring thymeleaf spring-webflux


【解决方案1】:

我找到了正确的解决方案。在您的 RouterFunction 中您需要使用:

return resources("/**", new ClassPathResource("/static/"))

这会将您的静态目录设置为:

:classpath/static

【讨论】:

  • 您使用的是哪个 Spring Boot 版本?最近该地区的情况发生了变化。
  • Spring Boot 2.0
  • 它还不是 GA - 所以你必须使用快照版本或里程碑?究竟是哪个?
  • 春季 2.0.0 M1
  • 在这种情况下,您应该在问题中反映这一点。这种行为将在下一个里程碑中改变。 (它会为你完成)
猜你喜欢
  • 1970-01-01
  • 2021-03-31
  • 2017-12-05
  • 1970-01-01
  • 2016-12-11
  • 2015-06-13
  • 2022-01-02
  • 1970-01-01
  • 2018-10-01
相关资源
最近更新 更多