国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄

這篇具有很好參考價(jià)值的文章主要介紹了Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄???????

靜態(tài)文件

application設(shè)置方法

配置詳解

編寫配置

優(yōu)缺點(diǎn)

設(shè)置配置類方法

配置詳解

編寫配置

優(yōu)缺點(diǎn)

總結(jié)


靜態(tài)文件

????????靜態(tài)資源,一般是網(wǎng)頁(yè)端的:HTML文件、JavaScript文件和圖片。尤其是設(shè)置圖片的靜態(tài)資源,尤其重要:

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

這樣的靜態(tài)資源訪問(wèn)不會(huì)被Springboot所攔截處理(方便用于CDN加速):

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

????????雖然真實(shí)項(xiàng)目里,圖片可以直接存儲(chǔ)在對(duì)象存儲(chǔ)的存儲(chǔ)桶內(nèi)或者直接用Nginx進(jìn)行反代,但是一些小的靜態(tài)資源,直接Springboot規(guī)劃靜態(tài)資源,也是個(gè)不錯(cuò)的選擇。

????????Springboot內(nèi)設(shè)置靜態(tài)資源,或者說(shuō)靜態(tài)資源文件夾,主要有兩種方法(均為SpringMVC實(shí)現(xiàn)):

? ? ? ? ·在application.yml/application.properties內(nèi)配置。

? ? ? ? ·設(shè)置Configuration配置類。

更多內(nèi)容,可以參考Spring官方文檔:www.baeldung.com/spring-mvc-…

以上兩種方法,均可實(shí)現(xiàn)用戶訪問(wèn)網(wǎng)址,不走Controller層的攔截,直接進(jìn)行靜態(tài)文件訪問(wèn):

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

application設(shè)置方法

配置詳解

設(shè)置application方法很簡(jiǎn)單,主要涉及兩個(gè)配置項(xiàng):

? ? ? ? ·spring.mvc.static-path-pattern:

? ? ? ? - 根據(jù)官網(wǎng)的描述和實(shí)際效果,可以理解為靜態(tài)文件URL匹配頭,也就是靜態(tài)文件的URL地址開(kāi)頭。Springboot默認(rèn)為:/**。

? ? ? ? ·spring.web.resources.static-locations:

? ? ? ? - 根據(jù)官網(wǎng)的描述和實(shí)際效果,可以理解為實(shí)際靜態(tài)文件地址,也就是靜態(tài)文件URL后,匹配的實(shí)際靜態(tài)文件。

? ? ? ? -Springboot默認(rèn)為:

classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

如何運(yùn)作的?,這里我畫個(gè)簡(jiǎn)單的圖:

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

需要注意:

  • spring.web.resources.static-locations是后續(xù)配置,舊版Springboot的配置項(xiàng)為:spring-resources-static-locations;在2.2.5版本之后,舊版本配置已經(jīng)失效。
  • spring.web.resources.static-locations有多個(gè)配置項(xiàng),在Springboot編譯后,會(huì)合并為一個(gè)文件。多個(gè)配置文件,使用,進(jìn)行分割。
  • spring.web.resources.static-location僅僅允許一個(gè)配置,無(wú)法使用,進(jìn)行分割,如果需要多個(gè)靜態(tài)資源文件,可以使用下文的配置類方法。
  • spring.web.resources.static-locations可以使用classpath、file進(jìn)行匹配。如果使用file,這個(gè)時(shí)候的相對(duì)路徑為項(xiàng)目地址(打包為.jar后,相對(duì)路徑就是.jar運(yùn)行地址)。

編寫配置

現(xiàn)在,官方描述,我們已經(jīng)知道了配置項(xiàng)的含義?,F(xiàn)在我們就來(lái)配置。

我使用的是YML格式的application配置,如果你是使用XML格式的application.properties,記得進(jìn)行更改。

最終效果很簡(jiǎn)單,我想要的效果: 瀏覽器輸入:http://localhost:8088/SystemData/UserData/Avatar/Mintimate.jpeg 可以直接訪問(wèn)項(xiàng)目文件下的:/SystemData/UserData/Avatar/Mintimate.jpeg

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

為了實(shí)現(xiàn)這樣的效果,我們編寫配置文件:

spring:
    mvc:
        # URL響應(yīng)地址(Springboot默認(rèn)為/**) 
        static-path-pattern: /SystemData/**
    web:
        resources:
            # 靜態(tài)文件地址,保留官方內(nèi)容后,進(jìn)行追加
            static-locations:
classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources,file:SystemData

其中,file:SystemData就是映射本地文件了。

這樣的配置,類似于Nginx的正則匹配:

location ^~/SystemData{	alias /www/myWeb/SystemData;}

這樣,我們運(yùn)行項(xiàng)目,就可以直接訪問(wèn)靜態(tài)資源了:

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

當(dāng)然,這樣有一些缺點(diǎn)……

優(yōu)缺點(diǎn)

這樣的配置,可以說(shuō)最簡(jiǎn)單且粗暴,但是靈活性差一點(diǎn)點(diǎn):

? ? ? ? ·URL響應(yīng)地址只能為一項(xiàng),也就是spring.mvc.static-path-pattern配置只能寫一項(xiàng)。

????????這意味著,按我上文設(shè)置了/SystemData/**為URL匹配,就不能設(shè)置第二個(gè)/resources/**這樣的配置為第二靜態(tài)目錄。

如果需要設(shè)置多個(gè)地址為靜態(tài)資源目錄,可以參考下文的設(shè)置配置類方法方法。

設(shè)置配置類方法

配置詳解

寫一個(gè)配置類,實(shí)現(xiàn)靜態(tài)資源的文件夾方法很多。比如:

  • 繼承于WebMvcConfigurationSupport父類,并實(shí)現(xiàn)addResourceHandlers方法。
  • 引用WebMvcConfigurer接口,并實(shí)現(xiàn)addInterceptors方法

一些文章可能會(huì)讓你繼承于WebMvcConfigurerAdapter方法,但是實(shí)際上WebMvcConfigurerAdapter方法在Spring5.0和Springboot2.0之后,已經(jīng)棄用。

這里,我處于習(xí)慣,就使用WebMvcConfigurationSupport進(jìn)行實(shí)現(xiàn)addResourceHandlers:

@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
}

這里的registry使用鏈?zhǔn)骄幊?方法為:

  • addResourceHandler:添加URL響應(yīng)地址目錄。
  • addResourceLocations:添加實(shí)際資源目錄。

????????和application.yml里設(shè)置一樣,支持classpath和file等關(guān)鍵詞。接下來(lái),我們就看看實(shí)際編寫配置。

編寫配置

現(xiàn)在我們就來(lái)配置。 最終效果很簡(jiǎn)單,我想要的效果(兩組同時(shí)):

  • 瀏覽器輸入:http://localhost:8088/SystemData/UserData/Avatar/Mintimate.jpeg
  • 可以直接訪問(wèn)項(xiàng)目文件下的:/SystemData/UserData/Avatar/Mintimate.jpeg,
  • 瀏覽器輸入:http://localhost:8088/SystemDataTest/UserData/Avatar/Mintimate.jpeg
  • 可以直接訪問(wèn)項(xiàng)目文件下的:/Test/UserData/Avatar/Demo.jpeg,

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

????????添加一個(gè)配置類,并繼承WebMvcConfigurationSupport,實(shí)現(xiàn)addResourceHandlers方法,并打上@Configuration注解,使其成為配置類:

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

之后,重寫內(nèi)容:

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

主要是:

// 靜態(tài)資源映射
registry
.addResourceHandler("/SystemData/**")
.addResourceLocations("file:"+IMG_PATH);

registry
.addResourceHandler("/SystemDataTest/**")
.addResourceLocations("file:"+IMG_PATH_TWO);

之后,瀏覽器就可以訪問(wèn)了:

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄,后端,spring boot,后端,java

這樣的配置,其實(shí)還是和Nginx配置類是……: 這樣的配置,類似于Nginx的正則匹配:

location ^~/SystemData{	alias /www/myWeb/SystemData;}

當(dāng)然,這樣的優(yōu)缺點(diǎn)……

優(yōu)缺點(diǎn)

相比前文的配置,這樣優(yōu)缺點(diǎn)很明顯:

  • 相比前文,這樣的配置更麻煩。
  • 相比前文,這樣的可塑性更高:可以添加更多的映射、不會(huì)對(duì)默認(rèn)配置造成覆蓋等。

總結(jié)

????????綜上所述,就是Springboot的靜態(tài)資源目錄添加方法啦。是不是和Nginx很像?

????????雖然現(xiàn)在Nginx和對(duì)象存儲(chǔ)都很方便,但是直接用Springboot進(jìn)行靜態(tài)資源的劃分,也不為一種方法。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-557435.html

到了這里,關(guān)于Springboot設(shè)置并訪問(wèn)靜態(tài)資源目錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot代理訪問(wèn)本地靜態(tài)資源400 404

    SpringBoot代理訪問(wèn)本地靜態(tài)資源400 404

    問(wèn)題:訪問(wèn)過(guò)程中可能會(huì)出現(xiàn)400、404問(wèn)題 前提:保證有文件,并且文件路徑正確 SpringBoot如何配置靜態(tài)資源代理,大家可以網(wǎng)上找一找,或者也可以參考我的另一篇博客 SpringBoot addResourceHandlers 代理靜態(tài)資源 1、路徑純英文 此種情況目前沒(méi)有遇到過(guò)問(wèn)題 2、路徑包含中文 此種

    2024年02月12日
    瀏覽(23)
  • Spring Boot 訪問(wèn)靜態(tài)資源css/js

    Spring Boot 訪問(wèn)靜態(tài)資源css/js

    我們用 Spring Boot 搭建 Web 應(yīng)用時(shí)(如搭建一個(gè)博客),經(jīng)常需要在 Html 中訪問(wèn)一些靜態(tài)資源,比如: css 樣式; js 腳本; favicon.ico 圖標(biāo)等; 而在 Spring Boot 中如果沒(méi)有做任何配置,是無(wú)法直接訪問(wèn)靜態(tài)資源的,通常會(huì)報(bào) 404 錯(cuò)誤 Spring Boot 訪問(wèn)靜態(tài)資源,默認(rèn)有兩個(gè)默認(rèn)目錄:

    2024年02月08日
    瀏覽(26)
  • 【BUG】SpringBoot 靜態(tài)資源(static)無(wú)法訪問(wèn)問(wèn)題404

    【BUG】SpringBoot 靜態(tài)資源(static)無(wú)法訪問(wèn)問(wèn)題404

    SpringBoot訪問(wèn)靜態(tài)資源出現(xiàn) 404 項(xiàng)目場(chǎng)景 問(wèn)題描述 ?編輯原因分析 解決方案 1. 將靜態(tài)資源放在static 或 templates目錄中 2.?繼承WebMvcConfigurerAdapter? 【已經(jīng)過(guò)時(shí)】 3. 繼承WebMvcConfiguratiWebonSupport 【推薦】 4. 實(shí)現(xiàn)WebMvcConfigurer接口 【推薦】 WebMvcConfiguratiWebonSupport 與?WebMvcConfigurer 區(qū)別

    2024年02月05日
    瀏覽(21)
  • springboot 項(xiàng)目訪問(wèn)靜態(tài)資源遇到的問(wèn)題,WebMvcConfigurer和WebMvcConfigurationSupport

    之前發(fā)過(guò)通過(guò)繼承WebMvcConfigurationSupport來(lái)訪問(wèn)靜態(tài)資源的文章——img標(biāo)簽訪問(wèn)靜態(tài)資源,代碼如下 這個(gè)方法是可行的,但會(huì)帶來(lái)一個(gè)小問(wèn)題。 像這些本身就要訪問(wèn)靜態(tài)資源的,它們一般是實(shí)現(xiàn)了WebMvcConfigurer,而不是繼承WebMvcConfigurationSupport。 當(dāng)我們用上面代碼中的方法訪問(wèn)

    2024年01月21日
    瀏覽(15)
  • SpringBoot后端服務(wù)開(kāi)啟Https協(xié)議提供訪問(wèn)(使用阿里云資源)

    SpringBoot后端服務(wù)開(kāi)啟Https協(xié)議提供訪問(wèn)(使用阿里云資源)

    目錄 概述 ?申請(qǐng)/下載證書 部署證書 本地測(cè)試訪問(wèn) 服務(wù)器部署訪問(wèn) ?最后/擴(kuò)展 總結(jié) 本篇博客說(shuō)明如何將SpringBoot項(xiàng)目開(kāi)啟Https協(xié)議提供訪問(wèn)。 博文以步驟 【申請(qǐng)/下載證書】,【部署證書】,【本地測(cè)試訪問(wèn)】,【服務(wù)器部署訪問(wèn)】 ?, 【擴(kuò)展】 展開(kāi)說(shuō)明。 廢話 :當(dāng)我們

    2024年02月12日
    瀏覽(23)
  • 10SpringBoot 靜態(tài)資源訪問(wèn)
                    
            
11Springboot的默認(rèn)配置文件和外部配置文件及加載順序

    10SpringBoot 靜態(tài)資源訪問(wèn) 11Springboot的默認(rèn)配置文件和外部配置文件及加載順序

    ? ? ?? ?做web開(kāi)發(fā)的時(shí)候,我們往往會(huì)有很多靜態(tài)資源,如html、圖片、css等。那如何向前端返回靜態(tài)資源呢? ? ? ? ?以前做過(guò)web開(kāi)發(fā)的同學(xué)應(yīng)該知道,我們以前創(chuàng)建的web工程下面會(huì)有一個(gè)webapp的目錄,我們只要把靜態(tài)資源放在該目錄下就可以直接訪問(wèn)。 ? ? ? ?但是,基

    2023年04月08日
    瀏覽(22)
  • SpringBoot項(xiàng)目打成jar包后,上傳的靜態(tài)資源(圖片等)如何存儲(chǔ)和訪問(wèn)

    SpringBoot項(xiàng)目打成jar包后,上傳的靜態(tài)資源(圖片等)如何存儲(chǔ)和訪問(wèn)

    使用springboot開(kāi)發(fā)一個(gè)項(xiàng)目,開(kāi)發(fā)文件上傳的時(shí)候,通常會(huì)將上傳的文件存儲(chǔ)到資源目錄下的static里面,然后在本地測(cè)試上傳文件功能沒(méi)有問(wèn)題,但是將項(xiàng)目打成jar包放到服務(wù)器上運(yùn)行的時(shí)候就會(huì)報(bào)錯(cuò),找不到對(duì)應(yīng)目錄?;蛘呖梢詫⑸蟼魑募鎯?chǔ)到和jar包同級(jí)的目錄下,但是無(wú)

    2024年02月12日
    瀏覽(25)
  • Spring boot之WEB 開(kāi)發(fā)-靜態(tài)資源訪問(wèn)--自定義轉(zhuǎn)換器--處理JSON--內(nèi)容協(xié)商

    Spring boot之WEB 開(kāi)發(fā)-靜態(tài)資源訪問(wèn)--自定義轉(zhuǎn)換器--處理JSON--內(nèi)容協(xié)商

    在線文檔: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications 1. 只要靜態(tài)資源放在類路徑下: /static 、/public 、/resources 、/META-INF/resources可以被直接訪問(wèn)- 對(duì)應(yīng)文件WebProperties.java 2. 常見(jiàn)靜態(tài)資源:JS、CSS 、圖片(.jpg .png .gif .bmp .svg)、字體

    2024年02月09日
    瀏覽(36)
  • SpringBoot -05 SpringBoot web相關(guān)配置(靜態(tài)資源訪問(wèn)、統(tǒng)一異常處理、文件上傳、攔截器、統(tǒng)一跨域請(qǐng)求處理)

    小總結(jié) SpringBoot是一個(gè)基于Spring的工具集,去幫我們完成了大量的配置。在SpringBoot中有一個(gè)約定大于配置的概念,就是他把我們很多第三方框架幫我們寫好了,而且把我們整個(gè)第三方框架所需要的依賴全都通過(guò)起步依賴加進(jìn)去了。開(kāi)發(fā)中只需要加入起步依賴就可以實(shí)現(xiàn)某個(gè)場(chǎng)

    2024年02月01日
    瀏覽(31)
  • Spring MVC學(xué)習(xí)隨筆-控制器(Controller)開(kāi)發(fā)詳解:控制器跳轉(zhuǎn)與作用域(二)視圖模板、靜態(tài)資源訪問(wèn)

    Spring MVC學(xué)習(xí)隨筆-控制器(Controller)開(kāi)發(fā)詳解:控制器跳轉(zhuǎn)與作用域(二)視圖模板、靜態(tài)資源訪問(wèn)

    學(xué)習(xí)視頻:孫哥說(shuō)SpringMVC:結(jié)合Thymeleaf,重塑你的MVC世界?。八从械腤eb開(kāi)發(fā)探索之旅 銜接上文Spring MVC學(xué)習(xí)隨筆-控制器(Controller)開(kāi)發(fā)詳解:控制器跳轉(zhuǎn)與作用域(一) SpingMVC中request作用域的處理 代碼 Model、ModelMap相關(guān)細(xì)節(jié)分析 通過(guò)Model、ModelMap進(jìn)行作用域處理,可以解決

    2024年02月05日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包