问题:
使用getServletContext().getRealPath()得到的是临时文件的路径。
每次重启服务,这个临时文件的路径还会变更。
类似下面这种路径:

解决措施:
在IDEA的 SpringBoot 启动配置里面配置工作区
说明:在resource目录下,必须要有static、public两个其中的一个目录

原理解释:
源码位置:org\springframework\boot\web\servlet\server\DocumentRoot.java
SpringBoot启动后,默认会把commonDocumentRoot设置成这三个目录


如果没有就会设置成临时位置。
注意:这些目录都是在工作区下找的,如果没有设置工作区,肯定也是找不到的。
配置好工作区,添加了static文件夹后,就能正常获取路径了。
本文介绍了解决 SpringBoot 应用中静态资源路径动态变化的问题。通过配置 IDEA 的工作区路径,可以确保 getServletContext().getRealPath() 方法返回稳定的静态资源路径。

被折叠的 条评论
为什么被折叠?



