Spring Web Flux 无法解析静态内容的路径
Spring Web Flux cannot resolve path to static content
我正在使用 Spring Boot 2.0.0 M1 和 WebFlux 来构建我的示例 Web 应用程序。在成功使用 REST 端点后,我决定向我的应用程序添加一些视图。我决定使用 Thymeleaf 3.x 版本。我知道 Spring 从 4 个默认位置提供静态内容:
- /META-INF/resources/
- /资源/
- /静态/
- /public/
我决定使用第二个示例,因此我的 css 文件位于 /resources/static/css/ 中。但是,在加载我的页面后,找不到 .css 文件。
这是我的 IDE 的屏幕截图:
我没有为静态目录提供我自己的配置,我只想使用默认配置。可能重要的是模板从 /resources/templates/ 目录加载得很好。
Css 文件加载如下:
<link data-th-href="@{css/bootstrap.min.css}" rel="stylesheet">
应用程序没有使用普通控制器 class 相反,我提供了作为 Bean 的功能来定义我的路由器:
@Bean
RouterFunction<?> router(final GeneratorHandler generatorHandler) {
return route(GET("/generate"), handler::render);
}
知道这里出了什么问题吗?
我找到了正确的解决方案。在您的 RouterFunction 中,您需要使用:
return resources("/**", new ClassPathResource("/static/"))
这会将您的静态目录设置为:
:classpath/static
我正在使用 Spring Boot 2.0.0 M1 和 WebFlux 来构建我的示例 Web 应用程序。在成功使用 REST 端点后,我决定向我的应用程序添加一些视图。我决定使用 Thymeleaf 3.x 版本。我知道 Spring 从 4 个默认位置提供静态内容:
- /META-INF/resources/
- /资源/
- /静态/
- /public/
我决定使用第二个示例,因此我的 css 文件位于 /resources/static/css/ 中。但是,在加载我的页面后,找不到 .css 文件。
这是我的 IDE 的屏幕截图:
我没有为静态目录提供我自己的配置,我只想使用默认配置。可能重要的是模板从 /resources/templates/ 目录加载得很好。
Css 文件加载如下:
<link data-th-href="@{css/bootstrap.min.css}" rel="stylesheet">
应用程序没有使用普通控制器 class 相反,我提供了作为 Bean 的功能来定义我的路由器:
@Bean
RouterFunction<?> router(final GeneratorHandler generatorHandler) {
return route(GET("/generate"), handler::render);
}
知道这里出了什么问题吗?
我找到了正确的解决方案。在您的 RouterFunction 中,您需要使用:
return resources("/**", new ClassPathResource("/static/"))
这会将您的静态目录设置为:
:classpath/static