1、靜态資源路徑是指系統可以直接通路的路徑,且路徑下的所有檔案均可被使用者通過浏覽器直接讀取。
2、在Springboot中預設的靜态資源路徑有:classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
3、在springboot中可以直接在配置檔案中覆寫預設的靜态資源路徑的配置資訊:
#自定義的屬性,指定了一個路徑,注意要以/結尾
web.upload-path=D:/temp/study13/
#表示所有的通路都經過靜态資源路徑
spring.mvc.static-path-pattern=/**
#覆寫預設配置,是以需要将預設的也加上否則static、public等這些路徑将不能被當作靜态資源路徑
#在最末尾的file:${web.upload-path}中的file:表示是一個具體的硬碟路徑,其他的使用classpath指的是系統環境變量
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}
4、在SpringBoot開發中,可以在Java代碼中覆寫預設靜态資源配置
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if(!registry.hasMappingForPattern("/static/**")){
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
super.addResourceHandlers(registry);
}
}
5、由于Spring Boot 預設資源路徑配置的問題,使用IDEA開發Spring Boot應用時,會導緻一個問題————浏覽器、編輯器 不能同時通路 JS 等資源的問題。這時往往通過配置 4 中的代碼,來實作同時通路資源檔案的效果