一、Springboot靜態資源映射基礎
Springboot 是目前最常用的 Java 開發框架之一,其中最重要的一個特性是可以快速構建 Web 應用程序。在 Web 應用程序中,靜態資源通常是指一些不需要經過處理的文件,例如頁面中用到的圖片、JavaScript 文件以及 CSS 文件等等。靜態資源映射是指訪問這些靜態資源時被請求到的位置。在 Springboot 中,靜態資源映射通常是基於 webjars、classpath 和 file 等資源路徑進行的。下面分別介紹這三種常用的靜態資源映射方法。
二、基於 webjars 進行靜態資源映射
webjars 是將 JavaScript 和 CSS 等前端庫打包在 JAR 文件中,以使得項目更好地依賴和管理這些前端庫。在 Springboot 中,我們可以使用 Maven 或 Gradle 等構建工具將所需的 webjars 引入項目中,並在 application.properties 或 application.yml 文件中進行配置。配置示例如下:
spring.webjars.prefix=/webjars spring.resources.static-locations=/webjars/
在配置完畢後,可以使用 localhost:8080/webjars/ 加上前端庫名稱和版本號訪問到相應的資源文件。例如訪問 bootstrap 的 CSS 文件可使用 localhost:8080/webjars/bootstrap/3.3.7/css/bootstrap.min.css 。這裡需要注意的是,訪問鏈接「/webjars/」是由 spring.resources.static-locations 和 spring.webjars.prefix 兩個配置項組合而成,其中 spring.resources.static-locations 是配置靜態資源文件夾的前綴,而 spring.webjars.prefix 是配置訪問 webjars 路徑的前綴。
三、基於 classpath 進行靜態資源映射
classpath 是指項目中編譯後生成的 class 文件所在的路徑。當我們把一些靜態資源文件(如圖片、文本文件、配置文件等)放置在 src/main/resources 路徑下後,這些就可以通過 classpath 直接獲取。在 Springboot 中,我們可以使用以下配置項對靜態資源進行映射。
spring.resources.static-locations=classpath:/static/
需要注意的是,訪問鏈接「/」是定位到靜態資源的默認路徑,比如我們在 src/main/resources/static 下有一個 index.html 文件,那麼可以通過 localhost:8080/index.html 訪問到該文件。我們也可以在配置文件中通過設置屬性來更改這個默認路徑,示例如下:
spring.mvc.static-path-pattern=/resources/**
這裡的配置項是將默認路徑「/」修改為訪問路由「/resources/**」。
四、基於 file 進行靜態資源映射
在一些特殊的情況下,我們可能需要把一些圖片、文本文件、配置文件等資源文件從外部文件夾中引入到我們的項目中。此時,我們可以基於 file 進行靜態資源映射,例如:
spring.resources.static-locations=file:/Users/Desktop/images/
在以上配置中,將訪問鏈接「/」轉向到了外部路徑 /Users/Desktop/images/。同樣的,我們也可以使用以下配置項修改默認路徑。
spring.mvc.static-path-pattern=/files/**
五、Springboot默認的靜態資源映射
在 Springboot 項目中,默認的靜態資源文件夾為以下兩個路徑:
- /META-INF/resources/
- /resources/
這裡的 /META-INF/resources/ 是指某些 JAR 包內置的靜態資源文件,如第三方庫中的一些 CSS 和 JavaScript 文件等。而 /resources/ 是指本項目中的靜態資源文件夾。
當我們需要訪問這些默認路徑中的靜態資源文件時,Springboot 會自動映射到相應的文件。所以當某些文件在以上默認路徑下時,我們可以通過 localhost:8080/ 直接進行訪問。同時,Springboot 也允許我們修改這些默認資源文件夾的位置,我們可以通過修改 application.properties 或 application.yml 文件中的以下配置項進行修改。
spring.resources.add-mappings=false spring.resources.static-locations=classpath:/static/, classpath:/public/, classpath:/resources/, classpath:/META-INF/resources/
結束語
本文詳細介紹了使用 Springboot 所支持的三種主要靜態資源映射方式,並且通過實際配置流程結合示例代碼展示了相關用法。相信這些知識可以幫助您更好地理解和使用 Springboot 開發 Web 應用程序,並且可以避免一些常見的開發誤區和錯誤。同時,我們也需要注意到,Springboot 中靜態資源映射涉及到的很多細節問題,需要我們在實際開發中細心鑽研。
原創文章,作者:XJYQK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/332414.html