Spring Boot 設置靜態資源訪問


問題描述

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

解決方案

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

@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/)

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM