最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中靜態(tài)資源處理的7個技巧分享

 更新時間:2025年05月13日 08:24:22   作者:風象南  
在Web應用開發(fā)中,靜態(tài)資源(如CSS、JavaScript、圖片等)的處理是一個基礎但重要的環(huán)節(jié),本文將介紹SpringBoot中7種靜態(tài)資源處理技巧,希望對大家有所幫助

在Web應用開發(fā)中,靜態(tài)資源(如CSS、JavaScript、圖片等)的處理是一個基礎但重要的環(huán)節(jié)。

SpringBoot作為一個強大的應用框架,為開發(fā)者提供了多種靈活處理靜態(tài)資源的方式。

本文將介紹SpringBoot中7種靜態(tài)資源處理技巧。

1. 利用默認靜態(tài)資源位置

SpringBoot默認提供了四個靜態(tài)資源目錄:

/static
/public
/resources
/META-INF/resources

這些目錄都位于classpath下,按照上述順序優(yōu)先級依次降低。將資源放入這些目錄,即可通過http://localhost:8080/資源名直接訪問。

// 示例:放在/static/css/main.css的資源
// 可通過以下URL訪問
// http://localhost:8080/css/main.css

2. 自定義靜態(tài)資源位置

可以通過配置修改默認的靜態(tài)資源位置:

spring:
  web:
    resources:
      static-locations:
        - classpath:/custom/
        - classpath:/static/
        - file:/path/to/external/resources/

這樣可以添加自定義目錄,甚至是服務器上的絕對路徑。

3. 使用WebJars管理前端依賴

WebJars提供了一種通過Maven或Gradle管理前端資源的方式,使它們像Java依賴一樣易于管理。

<!-- pom.xml中添加依賴 -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.6.0</version>
</dependency>

然后可以這樣訪問:

<script src="/webjars/jquery/3.6.0/jquery.min.js"></script>

4. 資源版本控制

SpringBoot支持靜態(tài)資源的版本控制,可以解決瀏覽器緩存問題:

spring:
  web:
    resources:
      chain:
        strategy:
          content:
            enabled: true
            paths: /**

這樣SpringBoot會基于內容生成指紋,如:

<link href="/css/main-a2b3c4d5e6.css" rel="stylesheet">

5. 配置靜態(tài)資源緩存

可以為靜態(tài)資源配置緩存控制:

spring:
  web:
    resources:
      cache:
        period: 3600
        cachecontrol:
          max-age: 3600
          must-revalidate: true

這將為靜態(tài)資源添加適當的HTTP緩存頭,提高性能。

6. 配置靜態(tài)資源訪問路徑前綴

可以為所有靜態(tài)資源添加統(tǒng)一的訪問前綴:

spring:
  mvc:
    static-path-pattern: /resources/**

配置后,所有靜態(tài)資源都需要通過/resources/前綴訪問:

http://localhost:8080/resources/css/main.css

這有助于區(qū)分API和靜態(tài)資源,便于管理。

7. 使用ResourceHandlers自定義資源處理

對于更復雜的需求,可以通過實現WebMvcConfigurer接口自定義資源處理器:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 將/files/**映射到file:/var/www/files/
        registry.addResourceHandler("/files/**")
                .addResourceLocations("file:/var/www/files/")
                .setCachePeriod(3600)
                .resourceChain(true)
                .addResolver(new VersionResourceResolver()
                        .addContentVersionStrategy("/**"));
                
        // 特定版本的資源處理
        registry.addResourceHandler("/js/**")
                .addResourceLocations("classpath:/static/js/")
                .resourceChain(true)
                .addResolver(new VersionResourceResolver()
                        .addFixedVersionStrategy("v1", "/**"));
    }
}

這種方式提供了最大的靈活性,可以為不同路徑配置不同的處理策略。

總結

SpringBoot為靜態(tài)資源處理提供了豐富的功能和靈活的配置選項,可以根據項目需求,選擇使用默認配置、簡單自定義或高級配置方式。

合理利用這些技巧,可以在SpringBoot項目中更好地管理靜態(tài)資源,同時保證開發(fā)的便捷性。

到此這篇關于SpringBoot中靜態(tài)資源處理的7個技巧分享的文章就介紹到這了,更多相關SpringBoot靜態(tài)資源處理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java并發(fā)編程之柵欄(CyclicBarrier)實例介紹

    Java并發(fā)編程之柵欄(CyclicBarrier)實例介紹

    這篇文章主要介紹了Java并發(fā)編程之柵欄(CyclicBarrier)實例介紹,柵欄類似閉鎖,但是它們是有區(qū)別的,需要的朋友可以參考下
    2015-04-04
  • Java Kubernetes本地部署的實現示例

    Java Kubernetes本地部署的實現示例

    本文,主要介紹了Java Kubernetes本地部署的實現,示例文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-10-10
  • Java利用反射對list對象做過濾

    Java利用反射對list對象做過濾

    這篇文章主要介紹了Java利用反射對list對象做過濾,但是使用反射對效率有影響,但在一些特殊情況也有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • JDK17中Sealed Classes的使用

    JDK17中Sealed Classes的使用

    Sealed類自JDK15起預覽,JDK17正式納入,通過sealed修飾限制繼承,指定允許的子類,并用final或non-sealed控制繼承層級,實現更精確的類繼承管理,下面就來介紹一下具體使用
    2025-08-08
  • Java實力彈彈球實現代碼

    Java實力彈彈球實現代碼

    這篇文章主要為大家詳細介紹了Java實力彈彈球實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • SpringBoot和Vue.js項目中實現文件壓縮下載功能的具體方案

    SpringBoot和Vue.js項目中實現文件壓縮下載功能的具體方案

    在Spring Boot和Vue.js項目中實現文件壓縮下載功能,主要思路是后端負責將多個文件壓縮成ZIP包,前端負責觸發(fā)下載并處理文件流,以下是具體的實現方案,需要的朋友可以參考下
    2025-09-09
  • MyBatis中if標簽的基本使用

    MyBatis中if標簽的基本使用

    本文介紹了MyBatis框架中的if標簽的使用方法,包括動態(tài)生成SQL語句、處理不同類型的參數和if標簽進行條件判斷,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Java反射根據不同方法名動態(tài)調用不同的方法(實例)

    Java反射根據不同方法名動態(tài)調用不同的方法(實例)

    下面小編就為大家?guī)硪黄狫ava反射根據不同方法名動態(tài)調用不同的方法(實例)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 解決springcloud-eureka注冊時的ip問題

    解決springcloud-eureka注冊時的ip問題

    這篇文章主要介紹了解決springcloud-eureka注冊時的ip問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一文帶你弄懂Maven拉包(拉取依賴包)原理

    一文帶你弄懂Maven拉包(拉取依賴包)原理

    業(yè)務需求開發(fā)的時候,我們總是會遇到拉不到依賴包的情況,此時如果不清楚 Maven 拉取依賴包的原理,那么很可能找不到問題所在,今天小編就帶大家了解下 Maven 拉包的原理,讓你在遇到問題的時候能快速解決,需要的朋友可以參考下
    2023-07-07

最新評論

宁蒗| 阿巴嘎旗| 柳林县| 察雅县| 扬州市| 纳雍县| 黎城县| 上杭县| 河源市| 连山| 界首市| 龙川县| 宾川县| 区。| 佛山市| 那曲县| 三江| 洛南县| 金堂县| 苗栗市| 金秀| 盐边县| 锡林郭勒盟| 九寨沟县| 天台县| 方正县| 喀喇| 叶城县| 甘洛县| 淅川县| 海林市| 五原县| 中牟县| 抚松县| 高青县| 宽城| 容城县| 石首市| 平定县| 华容县| 海原县|