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

springboot操作靜態(tài)資源文件的方法

 更新時間:2018年07月05日 15:04:02   作者:zombres  
這篇文章主要介紹了springboot操作靜態(tài)資源文件的方法,本文給大家提到了兩種方法,小編在這里比較推薦第一種方法,具體內(nèi)容詳情大家跟隨腳本之家小編一起看看吧

默認靜態(tài)資源供

SpringBoot有幾個默認的靜態(tài)資源目錄,當然也可配置,默認配置的/**映射到/static(或/public ,/resources,/META-INF/resources),自定義配置方式如下:

spring.mvc.static-path-pattern=/** # Path pattern used for static resources.

前端如果需要訪問默認的靜態(tài)資源,下面有點要注意,考慮下面的目錄結構:

└─resources
  │ application.yml
  │
  ├─static
  │ ├─css
  │ │   index.css
  │ │
  │ └─js
  │     index.js
  │
  └─templates
      index.html

在index.html中該如何引用上面的靜態(tài)資源呢?

 如下寫法:

<link rel="stylesheet" type="text/css" href="/css/index.css" rel="external nofollow" >
<script type="text/javascript" src="/js/index.js"></script>

注意:默認配置的/**映射到/static(或/public ,/resources,/META-INF/resources)

 當請求/css/index.css的時候,Spring MVC 會在/static/目錄下面找到。
 如果配置為/static/css/index.css,那么上面配置的幾個目錄下面都沒有/static目錄,因此會找不到資源文件!
 所以寫靜態(tài)資源位置的時候,不要帶上映射的目錄名(如/static/,/public/ ,/resources/,/META-INF/resources/)!

自定義靜態(tài)資源

網(wǎng)上資料說可以在配置文件中定義指定,我沒有用這種方式,我使用的是通過實現(xiàn)擴展Configuration來實現(xiàn)。

PS:說明一下在SpringBoot 1.x的版本中,都是通過繼承WebMvcAutoConfiguration來擴展一些與Spring MVC相關的配置,但在2.x的版本中,直接實現(xiàn)接口WebMvcConfigurer來擴展Spring MVC的相關功能,如配置攔截器,配置通用返回值處理器,配置統(tǒng)一異常處理等,當然還包括配置本文中的自定義靜態(tài)資源路徑,覆蓋里面等default方法即可。
 直接上代碼吧:

@Configuration
public class MyWebAppConfigurer implements WebMvcConfigurer {
  // event.share.image.dir=/data/share/image/
  @Value("${event.share.image.dir}")
  private String outputDir;
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/share/image/**").addResourceLocations(
        "file:"+outputDir);
  }
}

說明:上面代碼的背景是從別的地方動態(tài)拿過來的圖片,肯定不能在放到SringBoot的jar包中了,于是通過以上配置可以就可通過http://host/share/image/a.jpg直接訪問在/data/share/image/a.jpg圖片了。如果靜態(tài)資源文件不是動態(tài)的,也在resources目錄下面,只是需要下面這樣寫即可:

registry.addResourceHandler("/share/image/**").addResourceLocations(
        "classpath:"+outputDir); // 把file換成classpath

通過SpringBoot工具類訪問靜態(tài)資源

很簡單,代碼如下:

private static final String BACKGROUND_IMAGE = "share/background.jpg";
File file = new ClassPathResource(BACKGROUND_IMAGE).getFile();
InputStream is = new ClassPathResource(BACKGROUND_IMAGE).getInputStream();

原來還有一種寫法:

private static final String BACKGROUND_IMAGE = "classpath:share/background.jpg";
File file = ResourceUtils.getFile(BACKGROUND_IMAGE);

但在2.x版本中,可能出現(xiàn)下面但異常

java.io.FileNotFoundException: class path resource [share/background.jpg] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/ubuntu/wxcs/calendar-api-1.0.0.jar!/BOOT-INF/classes!/share/background.jpg

還是推薦第一種寫法把。

相關文章

  • Java8中時區(qū)與不同歷法處理指南

    Java8中時區(qū)與不同歷法處理指南

    Java?8?的?java.time?API?不僅修復了舊版日期時間?API?的設計缺陷,還提供了對時區(qū)和多歷法的全面支持,下面小編就來講講具體的處理操作,有需要的可以了解下
    2025-04-04
  • 詳解Spring-Boot中如何使用多線程處理任務

    詳解Spring-Boot中如何使用多線程處理任務

    本篇文章主要介紹了詳解Spring-Boot中如何使用多線程處理任務,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • kafka topic 權限控制(設置刪除權限)

    kafka topic 權限控制(設置刪除權限)

    大家都知道Kafka是一個消息隊列,把消息放到隊列里邊的叫生產(chǎn)者,從隊列里邊消費的叫消費者。今天通過本文給大家介紹kafka topic 權限控制的相關知識,感興趣的朋友一起看看吧
    2021-11-11
  • Java如何修改JsonObject中的屬性值

    Java如何修改JsonObject中的屬性值

    這篇文章主要介紹了Java如何修改JsonObject中的屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringBoot校園綜合管理系統(tǒng)實現(xiàn)流程分步講解

    SpringBoot校園綜合管理系統(tǒng)實現(xiàn)流程分步講解

    這篇文章主要介紹了SpringBoot+Vue實現(xiàn)校園綜合管理系統(tǒng)流程分步講解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-09-09
  • Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(共享模式)

    Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(共享模式)

    這篇文章主要為大家詳細介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Maven之導入thymeleaf依賴飄紅問題及解決

    Maven之導入thymeleaf依賴飄紅問題及解決

    這篇文章主要介紹了Maven之導入thymeleaf依賴飄紅問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java 比較接口comparable與comparator區(qū)別解析

    Java 比較接口comparable與comparator區(qū)別解析

    這篇文章主要介紹了Java 比較接口comparable與comparator區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java日期操作類常見用法示例

    Java日期操作類常見用法示例

    這篇文章主要介紹了Java日期操作類常見用法,結合實例形式分析了java針對日期時間的獲取、轉換常見操作技巧,需要的朋友可以參考下
    2019-07-07
  • Java日期工具類操作字符串Date和LocalDate互轉

    Java日期工具類操作字符串Date和LocalDate互轉

    這篇文章主要介紹了Java日期工具類操作字符串Date和LocalDate互轉,文章首先通過需要先引入坐標展開主題的相關內(nèi)容介紹,需要的朋友可以參一下
    2022-06-06

最新評論

福海县| 蓝田县| 郴州市| 宜良县| 中牟县| 大埔区| 毕节市| 南开区| 广饶县| 鄯善县| 无极县| 永丰县| 老河口市| 沧源| 海安县| 宿迁市| 靖江市| 林州市| 乌鲁木齐县| 辽阳县| 南岸区| 彭山县| 荔波县| 兴宁市| 西平县| 方城县| 铜陵市| 顺平县| 泸西县| 南部县| 怀远县| 格尔木市| 灵石县| 新宾| 龙川县| 钦州市| 湖口县| 东明县| 盱眙县| 伽师县| 大竹县|