首頁 > 軟體

SpringBoot深入探究四種靜態資源存取的方式

2022-05-25 14:04:00

1.預設的靜態資源目錄

/static

/public

/resources

/META-INF/resources

動態資源目錄:/templates

2.resources靜態資源目錄圖片存放

3. 靜態資源存取

3.1.通過路徑存取靜態資源

http://localhost:8080/a.jpg

http://localhost:8080/b.jpg

http://localhost:8080/c.png

http://localhost:8080/d.jpg

3.2.通過設定類設定路徑存取本地靜態資源

1.config

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //自定義路徑mypic,  addResourceLocations指定存取資源所在目錄
        registry.addResourceHandler("/mypic/**").addResourceLocations("file:C:\Users\Administrator\Desktop\images1\");
        //自定義路徑webjars存取,addResourceLocations對映該路徑下的資源,resourceChain資源鏈
//        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/").resourceChain(true);
    }
}

2.存取結果展示

路徑:http://localhost:8080/mypic/huangshanpic.webp

3.3.通過組態檔設定路徑存取靜態資源

(1).application.yml

web.pic-path=C:/Users/Administrator/Desktop/images1/
spring.mvc.static-path-pattern=/mypic/**
spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/public/,classpath:/static/,file:${web.pic-path}

web.pic-path:存取路徑

spring.mvc.static-path-pattern:採用全部對映到mypic路徑的方式

spring.web.resources.static-locations:設定允許存取的靜態資源目錄

(2).存取路徑格式

http://localhost:8080/mypic/a.jpg

http://localhost:8080/mypic/b.jpg

http://localhost:8080/mypic/c.png

http://localhost:8080/mypic/d.jpg

http://localhost:8080/mypic/web.pic-path設定本地路徑下的圖片名稱

3.4.通過引入打包靜態資源的jar包形式存取

(1).靜態資源打jar包

建立一個新的web工程,只存放靜態資源

1).pom.xml

    <artifactId>WWebjarsdemo</artifactId>
    <version>1.0</version>
    <build>
        <resources>
            <resource>
                <!--
                directory   將該路徑下的資源(example/0.0.3/資源)打包
                targetPath  成該路徑下儲存
                -->
                <directory>${project.basedir}/src/main/resources</directory>
                <targetPath>${project.build.outputDirectory}/META-INF/resources/webjars</targetPath>
            </resource>
        </resources>
    </build>

2).靜態資源目錄結構

3).package點選打包

4).install到本地倉庫

(2).主專案中引入依賴包

1).pom.xml

        <!--匯入依賴的自定義靜態資源webjars包-->
        <dependency>
            <groupId>com.openlab</groupId>
            <artifactId>WWebjarsdemo</artifactId>
            <version>1.0</version>
        </dependency>
        <!--為了不再管理版本號-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>webjars-locator-core</artifactId>
            <version>0.35</version>
        </dependency>

(3).路徑存取

未引入webjars-locator-core的jar包:http://localhost:8080/webjars/example/版本號/huangshan.webp

引入webjars-locator-core的jar包:

http://localhost:8080/webjars/example/huangshan.webp

注意:如果主程式和引入打包的jar包靜態資源下具備相同的目錄結構,如:META-INFresourceswebjarsexample.0.1**,可能會出現路徑存取失敗的情況。

解決方法:clean主程式專案,重新執行。

(4).存取結果

到此這篇關於SpringBoot深入探究四種靜態資源存取的方式的文章就介紹到這了,更多相關SpringBoot靜態資源存取內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com