1. 程式人生 > 程式設計 >SpringMvc靜態資源訪問實現方法程式碼例項

SpringMvc靜態資源訪問實現方法程式碼例項

原因

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);
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。