最近遇到了这么一个问题,SpringBoot+Thymeleaf修改图片路径后,刷新界面不能马上生效,需要重启服务器才能显示的问题。
刚开始的时候我还以为是代码逻辑的问题,后来百度了很久发现这是一种保护机制,为了防止绝对路径被看出来,目录结构暴露
我的图片是放在img下面的
只要添加一个映射关系,将/img映射为目录结构的访问即可
如下代码所示:
package com.hk.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//解决图片需要重启才能访问的问题
@Configuration
public class FileUploadConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//获取文件的真实路径
String path = System.getProperty("user.dir")+"\\src\\main\\resources\\static\\img\\";
//添加映射
registry.addResourceHandler("/img/**").addResourceLocations("file:"+path);
}
}
通过上面的代码即可,在你访问/img时,自动换成目录结构的访问,这样就能显示了。