SpringBoot開發案例之配置靜態資源文件路徑

摘要: 前言 SpringBoot本質上是爲微服務而生的,以JAR的形式啓動運行,但是有時候靜態資源的訪問是必不可少的,比如:image、js、css 等資源的訪問。 默認靜態資源路徑 Spring Boot 對靜態資源映射提供了默認配置,靜態資源路徑都是在classpath中: classpath:/..

前言

SpringBoot本質上是爲微服務而生的,以JAR的形式啓動運行,但是有時候靜態資源的訪問是必不可少的,比如:image、js、css 等資源的訪問。

默認靜態資源路徑

Spring Boot 對靜態資源映射提供了默認配置,靜態資源路徑都是在classpath中:

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

我們在src/main/resources目錄下新建 public、resources、static 三個目錄,並分別放入 1.jpg 2.jpg 3.jpg 三張圖片。然後通過瀏覽器分別訪問:

http://localhost:8080/1.jpg
http://localhost:8080/2.jpg
http://localhost:8080/3.jpg

地址均可以正常訪問,Spring Boot 默認會從 public resources static 三個目錄裏面查找是否存在相應的資源。

新增靜態資源路徑

我們在spring.resources.static-locations後面追加一個配置classpath:/itstyle/:

# 靜態文件請求匹配方式
spring.mvc.static-path-pattern=/**
# 修改默認的靜態尋址資源目錄 多個使用逗號分隔
spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/itstyle/

自定義靜態資源外部路徑映射

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

在實際開發中,我們可能需要自定義靜態資源訪問以及上傳路徑,特別是文件上傳,不可能上傳的運行的JAR服務中,那麼可以通過繼承WebMvcConfigurerAdapter來實現自定義路徑映射。

application.properties 文件配置:

# 圖片音頻上傳路徑配置(win系統自行變更本地路徑)
web.upload.path=/home/file/

WechatApplication.java 啓動配置:

/**
 * 語音測評後臺服務
 * 創建者 柒
 * 創建時間    2018年3月8日
 */
@SpringBootApplication
public class WechatApplication extends WebMvcConfigurerAdapter  {
    
    private final static Logger LOGGER = LoggerFactory.getLogger(WechatApplication.class);
    
    @Value("${web.upload.path}")
    private String uploadPath;
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);
        registry.addResourceHandler("/uploads/**").addResourceLocations(
                "file:"+uploadPath);
        LOGGER.info("自定義靜態資源目錄、此處功能用於文件映射");
    }
    
    public static void main(String[] args) {
        SpringApplication.run(WechatApplication.class);
        LOGGER.info("語音測評後臺服務啓動成功");
    }

}


第二種方式:在application.properties配置

在application.properties中添加配置:

# 靜態文件請求匹配方式
spring.mvc.static-path-pattern=/upload/**
# 修改默認的靜態尋址資源目錄 多個使用逗號分隔
#spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/itstyle/spring.resources.static-locations=file:${web.upload-path},file:${web.front-path}

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

配置中配置了靜態模式爲/upload/**,訪問時候就只能通過/upload/xx 來訪問。

我們現在可以訪問以下路徑:

http://localhost:8080/uploads/1.jpg

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章