关于 WebFlux 的教程方面的内容我已经持续写过很多内容了。包括前面的这篇《WebFlux 整合 thymeleaf 教程》文章,对静态资源的处理,提到的都非常的少。今天我抽个时间专门把 WebFlux 对静态资源的映射来写一写!
所谓的静态资源,主要就是指 css、js、图片等这类文件。我不需要每个都给你配置一个路由,直接给你一个规则,src/main/resources/public 目录下的全是静态文件,访问这个目录的内容,直接映射一下。
这个想法很好,WebFlux 中也提供了类似的功能。默认就会进行静态资源映射。前提是你的静态资源必须放在 src/main/resources/public 目录下。
如果你新建了一个目录,比如,src/main/resources/static。那对不起,WebFlux 将无法进行自动映射。
这个时候,我们就有两种做法来进行改变映射的路径。
第一种通过配置文件的形式,指定 spring.resources.static-locations 和 spring.webflux.static-path-pattern 两个属性值即可。这个配置非常简单,看属性名称就知道如何配置了。我就不细说了,我重点说一下第二种方案。
第二种办法就是,通过 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 的奥秘。
: » WebFlux 静态资源处理教程
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/252038.html