SpringMvc靜態資源訪問實現方法程式碼例項
阿新 • • 發佈:2020-08-11
原因
SpringMvc中配置前端控制器DispatcherServlet 設為‘/'後,所有的資源請求都要被前端控制器捕捉,SpringMvc會把他們作為普通的請求處理,從而因為找不到對應處理器報錯。
解決方法
官方推薦方法
<!--servlet容器能處理的對映,springMvc不攔截-->
<mvc:default-servlet-handler/>
其他方法
xml方式
在springmvc的xml配置檔案中
<mvc:resources mapping="/resources/**" location="/public/,classpath:/static/"
cache-period="31556926"/>
location指資源在專案中的位置'/'是根目錄webapp,mapping請求路徑‘/'是埠號後的‘/'
含義:當請求的資源路徑符合/resources/,轉到/public或者/static/下的資源
例:
<link rel="script" href="/resources/a.css" rel="external nofollow" >
訪問資源/resources/acss --> 先/public/a.css(若先沒有)後/static/a.css
java方式
@Configuration //宣告配置類 @EnableWebMvc //請用springmvc掃描 public class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("/public","classpath:/static/") .setCachePeriod(31556926); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。