WebFlux 静态资源处理教程

JAVA herman 855浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

关于 WebFlux 的教程方面的内容我已经持续写过很多内容了。包括前面的这篇《WebFlux 整合 thymeleaf 教程》文章,对静态资源的处理,提到的都非常的少。今天我抽个时间专门把 WebFlux 对静态资源的映射来写一写!

所谓的静态资源,主要就是指 css、js、图片等这类文件。我不需要每个都给你配置一个路由,直接给你一个规则,src/main/resources/public 目录下的全是静态文件,访问这个目录的内容,直接映射一下。

这个想法很好,WebFlux 中也提供了类似的功能。默认就会进行静态资源映射。前提是你的静态资源必须放在 src/main/resources/public 目录下。

WebFlux 处理静态资源

如果你新建了一个目录,比如,src/main/resources/static。那对不起,WebFlux 将无法进行自动映射。

这个时候,我们就有两种做法来进行改变映射的路径。

第一种通过配置文件的形式,指定 spring.resources.static-locations 和 spring.webflux.static-path-pattern 两个属性值即可。这个配置非常简单,看属性名称就知道如何配置了。我就不细说了,我重点说一下第二种方案。

第二种办法就是,通过 RouterFunctions.resources 来指定和映射静态资源。

RouterFunctions.resources

现在假设,我们的静态资源放置在 src/main/resources/statica 目录下。这是一个自定义的目录 statica,我专门加了一个 a,不是写错了,故意的。

然后,我们通过 RouterFunctions.resources 就可以这样来做。

@Configuration
public class StaticRoute {
    @Bean
    RouterFunction<ServerResponse> staticResourceRouter(){
        return RouterFunctions.resources("/statica/**", 
                new ClassPathResource("statica/"));
    }
}

这样,重启项目就可以使用指定的目录存放静态资源了。

以上,如果你还有疑问,欢迎关注我的微信公众号,和我一起探讨 WebFlux 的奥秘。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » WebFlux 静态资源处理教程