亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用SpringBoot如何實現加載靜態資源

發布時間:2020-11-16 16:35:43 來源:億速云 閱讀:282 作者:Leah 欄目:編程語言

這篇文章給大家介紹使用SpringBoot如何實現加載靜態資源,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在SpringBoot中加載靜態資源和在普通的web應用中不太一樣。默認情況下,spring Boot從classpath下一個叫/static(/public,/resources或/META-INF/resources)的文件夾或從ServletContext根目錄提供靜態內容。下面我們來寫個例子看一下就會一目了然了:首先看一下項目的目錄結構:

使用SpringBoot如何實現加載靜態資源

我們在resources下面的templates目錄下建一個home.html的文件,完整目錄為:src/main/resources/templates/home.html。內容如下:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
  <meta charset="utf-8"/> 
  <title>ConanZhang的首頁</title> 
</head> 
<body> 
我是首頁: 
<!--<image th:src="@{/image/267862-1212151Z12099.jpg}"/> --> 
</body> 
</html> 

如果我們想要訪問home.html應該怎么做呢?我們先來看第一種方式:

1、我們在web.controller這個包下面建一個Controller類:ThymeleafTestController.代碼內容如下:

package com.zkn.learnspringboot.web.controller; 
 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
 
/** 
 * Created by wb-zhangkenan on 2016/11/30. 
 */ 
@Controller 
@RequestMapping("thymeleaf") 
public class ThymeleafTestController { 
 
  @RequestMapping("home") 
  public String getHome(){ 
 
    return "home"; 
  } 
} 

寫到這里你一定非常眼熟,這不就是SpringMVC的寫法嗎?沒錯就是SpringMVC的寫法:下面我們來訪問一下:http://localhost:8003/thymeleaf/home。結果如圖所示:

使用SpringBoot如何實現加載靜態資源

因為SpringBoot集成了Thymeleaf,所以它會默認查找resources下面的templates這個目錄下的文件。templates這個目錄的名字不要寫錯了。接著我又有了這樣的需求,假設我想在我的home.html中引入一些其他的靜態資源文件,比如我想在home.html中引入一張圖片:那我們應該怎么做呢?

首先,我們需要在resources下面建一個static或者public的目錄,你不建立目錄也行,直接放到resources下面,接著我們再建立一個image的目錄,最終的目錄結構如圖所示:

使用SpringBoot如何實現加載靜態資源

我們在image這個目錄下放入一張圖片,然后我們在home.html中引入一下這張圖片,最終的代碼如下:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head>WebMvcConfigurerAdapter 
  <meta charset="utf-8"/> 
  <title>ConanZhang的首頁</title> 
</head> 
  <body> 
我是首頁: 
  <image th:src="@{/image/267862-1212151Z12099.jpg}" width="100px" height="50px" /> 
  </body> 
</html> 

看到上面的寫法你可能會有些奇怪,th:src和@{}這都是什么鬼。其實這是Thymeleaf的語法。@{}是引入外部資源用的。下面我們再來訪問一下,結果如下圖所示:

使用SpringBoot如何實現加載靜態資源

這樣我們就訪問到了image目錄下的圖片了。

可能會有人說難道我只能放到static、public或者直接放到resources下面嗎?我換個目錄就不行了嗎?那當然不是這樣的,下面我們來換另外一種寫法:

在我現在的這個項目中前臺是用React-redux寫的,后臺SpringBoot只是用來提供接口的,我只需要一個首頁來把編譯后的react-redux引入到項目中就可以了,如果我想直接訪問這個首頁那我應該怎么做呢?SpringMVC為我們提供了這樣的一個類:WebMvcConfigurerAdapter。我們就是借助于這個類來實現我們需要的功能的。我們寫一個類來繼承這個類,代碼如下:

package com.zkn.learnspringboot.config; 
 
import org.springframework.context.annotation.Configuration; 
import org.springframework.util.ResourceUtils; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
 
/** 
 * Created by wb-zhangkenan on 2016/11/30. 
 */ 
@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 
 
  @Override 
  public void addResourceHandlers(ResourceHandlerRegistry registry) { 
 
    registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/",ResourceUtils.CLASSPATH_URL_PREFIX+"/image/"); 
    super.addResourceHandlers(registry); 
  } 
   
} 

我們重寫了addResourceHandlers這個方法來重新注冊了一個資源處理器。接著我們在來訪問一下看看:http://localhost:8003/templates/home.html。結果如下圖所示:

使用SpringBoot如何實現加載靜態資源

注意了這里我們是直接訪問的home.html這個文件。和我們預期的效果是一樣的。接著可能會有人說:如果我也想在home.html中引入靜態資源要怎么辦呢?比如說上面的那個例子,我要引入一個一張圖片。也簡單,那我們就再注冊一個資源處理器就OK了。Java代碼如下:

package com.zkn.learnspringboot.config; 
 
import org.springframework.context.annotation.Configuration; 
import org.springframework.util.ResourceUtils; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
 
/** 
 * Created by wb-zhangkenan on 2016/11/30. 
 */ 
@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 
 
  @Override 
  public void addResourceHandlers(ResourceHandlerRegistry registry) { 
 
    registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/"); 
    registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/"); 
    super.addResourceHandlers(registry); 
  } 
 
} 

home.html中的內容如下所示:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
  <meta charset="utf-8"/> 
  <title>ConanZhang的首頁</title> 
</head> 
  <body> 
我是首頁: 
  <image src="/static/image/267862-1212151Z12099.jpg" width="100px" height="50px" /> 
  </body> 
</html> 

接著我們再訪問以下看看什么效果:http://localhost:8003/templates/home.html

使用SpringBoot如何實現加載靜態資源

關于使用SpringBoot如何實現加載靜態資源就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

娄底市| 修文县| 榆树市| 灵宝市| 富裕县| 平安县| 德兴市| 嘉峪关市| 象州县| 长春市| 仁寿县| 馆陶县| 鄢陵县| 县级市| 宁波市| 鹤山市| 龙里县| 元江| 包头市| 满洲里市| 富锦市| 东乡县| 巩义市| 日照市| 齐齐哈尔市| 鹤峰县| 福鼎市| 清徐县| 芷江| 汉寿县| 柘城县| 天台县| 景东| 上林县| 古交市| 嘉黎县| 永康市| 河源市| 河间市| 韶山市| 赤水市|