问题描述
在开发Spring Boot 项目中访问静态资源得到中文乱码。Thymeleaf 渲染的页面也中文乱码。
下面是我的工程资源目录:
目录.png
问题分析
开始我以为是 SpringBoot 的编码问题,但结合网上资料,springboot 默认是utf-8的格式。
这一点是可以验证的,因为 我打开了健康检查,他的返回时正常的。
既然应用编码没问题,那可能是构建后的文件问题。接着,查看构建后的文件果然编码有问题。
构建后的文件.png
其他文件像application.yml是正常的。所以,我认为一定是构建时候做了多余的东西。
gradle构建过程.png
发现构建时,会先处理资源 文件(processResources环节)。在build.gradle 中发现端倪:添加了过滤器但是没有排除个别文件。
buid文件.png
解决办法是排除掉/static目录。
排除静态文件.png
构建后
编码正常.png
总结
- 平时只关注代码对构建过程没有了解。
- 遇到问题急躁了,没有定位问题就上网搜,犹如大海捞针。(建议大家遇到问题别慌,先根据自己的分析定位问题,如果没有头绪有条件的可以找伙伴讨论或者借助网络帮助自己了解问题而不是搜答案)










网友评论