Spring Boot 配置靜態資源映射器

程序員社區 2022-01-07 14:09:28 阅读数:230

spring boot 配置 映射器 映射

       其實,Spring Boot 框架已經對 js、css 等靜態資源做了映射規則。默認情况下,它會去如下的 5 個目錄中去找。關於 Spring Boot 對靜態資源映射規則的介紹,你可以參考博主這篇文章:Spring Boot 對 js、css 等靜態資源的映射規則

1."classpath:/META-INF/resources/"

2."classpath:/resources/"

3."classpath:/static/"

4."classpath:/public/"

5."/":當前項目的根路徑                 我們將這5個路徑,稱之為 SpringBoot 規定的默認靜態資源文件夾

       我們也可以通過修改靜態資源路徑的方式,來滿足項目的開發,有以下 2 種方式來修改靜態資源路徑。切記:自定義靜態資源文件夾後, Spring Boot 默認為我們提供的靜態資源文件夾就會失效。

1.通過全局配置的方式修改

    本例以 applicaiton.properties 為例,添加如下兩個配置:(不建議再配置成Spring Boot 默認路徑,沒意義)

# 設置靜態資源訪問路徑spring.mvc.static-path-pattern=/asserts/**# 設置靜態資源所在路徑(多個路徑以逗號分隔)spring.resources.static-locations=classpath:/files

2.添加靜態資源映射器的方式修改

       新建一個類,添加@Configuration注解,標注該類是一個配置類,然後通過@Bean的方式,將該組件注册到 Spring 容器中生效。

@Configurationpublic class MyMvcConfig extends WebMvcConfigurerAdapter {
 //使用如下這種方式,可以讓所有的WebMvcConfigurerAdapter組件都會一起起作用 @Bean //將組件注册在容器 public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){
 WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
 /** * 添加靜態資源映射器 * @param registry */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) {
 super.addResourceHandlers(registry); registry.addResourceHandler("/asserts/**").addResourceLocations("classpath:/files"); } }; return adapter;}

       配置完成後,我們就可以在 html 頁使用配置的路徑來訪問靜態資源了。根據以上配置,我們可以使用這種請求<link href="/asserts/bootstrap.min.css>,來獲取項目files目錄下的bootstrap.min.css 文件。鏈接中設置讀取 asserts 目錄,實則是去讀 files 目錄下的文件

Thymeleaf 版

       在 Spring Boot 中,如果使用 Thymeleaf 模板引擎,你也可以使用 <link th:href="@{/asserts/bootstrap.min.css}"> 這種方式來引入。理論上Spring Boot 已經為我們做了靜態資源映射,如果沒有必要,還是不建議大家去修改。


博主寫作不易,來個關注唄

求關注、求點贊,加個關注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保證寫的所有知識點都正確,但是能保證純手敲,錯誤也請指出,望輕噴 Thanks*(・ω・)ノ

版权声明:本文为[程序員社區]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071409281503.html