Spring Boot 設置靜態資源訪問

問題描述

當使用spring Boot來架設服務系統時,有時候也須要用到前端頁面,固然就不可或缺地須要訪問其餘一些靜態資源,好比圖片、css、js等文件。那麼如何設置Spring Boot網站能夠訪問獲得這些靜態資源,以及靜態資源如何佈局?css

解決方案

這裏引用stackoverflow網站的問題截圖:[http://stackoverflow.com/questions/27381781/java-spring-boot-how-to-map-my-my-app-root-to-index-html] 
這裏寫圖片描述 
以及config/WebConfig.Java的內容以下:html

@Configuration @EnableWebMvc @ComponentScan public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("/"); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

常見問題

官方的解說

最多見的就是官方給出的方案:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html 
具體位置在26.1.4 Static Content 
可是通過檢驗 src/main/resources目錄下的資源文件不能被直接訪問到。圖片說明以下: 
這裏寫圖片描述前端

解釋

其實官方解釋沒有說起一點,就是不能使用@EnableWebMvc,固然若是Spring Boot在classpath裏看到有 spring webmvc 也會自動添加@EnableWebMvc (http://spring.io/guides/gs/rest-service/)java

若是@EnableWebMvc了,那麼就會自動覆蓋了官方給出的/static/publicMETA-INF/resources/resources等存放靜態資源的目錄。而將靜態資源定位於src/main/webapp。當須要從新定義好資源所在目錄時,則須要主動添加上述的那個配置類,來Override addResourceHandlers方法。web

相關文章
相關標籤/搜索