springboot載入專案內外靜態資源
1、pom中加入springboot訪問靜態資源的jar包
springboot預設專案靜態資源的位置是專案下的 /static、/public、/META-INF/resources、/resources這幾個目錄
當專案整合freemarker時,模板必須放到src/main/resources/templates目錄下。模板副檔名必須為ftl。
2、需要繼承WebMvcConfigurerAdapter重寫addResourceHandlers方法,並將該類打上@Configuration註解
@Configuration
public class ApplicationConfig extends WebMvcConfigurerAdapter{
@Value("${static.wavpath}")
private String filepath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/staticwav/**").addResourceLocations("file:///F:noms/static/wav/");
super.addResourceHandlers(registry);
}
}
這裡需要注意的是:有的file:///F: 這裡是三條線,我看其他部落格都是兩條線。資料夾後還有/
3、springboot載入類需要匯入配置類
@SpringBootApplication
@Import(ApplicationConfig.class)
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4、F:noms/static/wav/資料夾裡的返回方式
該圖片在磁碟上的位置是F:noms/static/wav/bbb.jpg 返回給頁面的路徑為staticwav/bbb.jpg。配置類中將F:noms/static/wav/下的資源對映到staticwav/下,所以直接返回staticwav/bbb.jpg,頁面可以直接載入該靜態資源。
這樣就能載入磁碟上的靜態資源了。
5、訪問專案內的靜態資源,不是springboot預設的資料夾時需要以下配置
訪問的時候需要在路徑前面加上在addResourceHandler中配置的字首。
訪問路徑為localhost:18888/aa/aa.jpg