首頁 >Java >java教程 >Spring Boot系列之關於靜態資源處理的分享

Spring Boot系列之關於靜態資源處理的分享

黄舟
黄舟原創
2017-07-24 14:17:151410瀏覽

在web開發中,靜態資源的存取是必不可少的,如:圖片、js、css 等資源的存取。

spring Boot 對靜態資源存取提供了很好的支持,基本使用預設配置就能滿足開發需求。

一、預設靜態資源映射

Spring Boot 對靜態資源映射提供了預設配置

Spring Boot 預設將/** 所有存取映射到以下目錄:

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

如:在resources目錄下新建public、resources、static 三個目錄,並分別放入a.jpg b.jpg c.jpg 圖片

Spring Boot系列之關於靜態資源處理的分享

瀏覽器分別存取:

http://localhost:8080/a.jpg
http://localhost:8080/b.jpg
http://localhost:8080/c.jpg

皆能正常存取對應的圖片資源。那麼說明,Spring Boot 預設會挨個從 public resources static 裡面找是否有對應的資源,如果有則直接回傳。

二、自訂靜態資源映射

在實際開發中,可能需要自訂靜態資源存取路徑,那麼可以繼承WebMvcConfigurerAdapter來實作。

第一種方式:靜態資源配置類別

package com.sam.demo.conf;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 配置静态资源映射
 * @author sam
 * @since 2017/7/16
 */
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //将所有/static/** 访问都映射到classpath:/static/ Spring Boot系列之關於靜態資源處理的分享下
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

重啟項目,訪問:http://localhost:8080/static/c.jpg 能正常存取static目錄下的c.jpg圖片資源。

第二種方式:在application.properties設定

在application.properties中新增設定:

spring.mvc.static-path-pattern=/static/**

重啟項目,造訪:http://localhost:8080/ static/c.jpg 同樣能正常存取static目錄下的c.jpg圖片資源。

注意:透過spring.mvc.static-path-pattern這種方式配置,會使Spring Boot的預設配置失效,也就是說,/public /resources 等預設配置不能使用。

配置中配置了靜態模式為/static/,就只能透過/static/來存取。

以上是Spring Boot系列之關於靜態資源處理的分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn