以下是測試結果,可能存在紕漏,暫記錄一下。
使用springMVC時,一般將DispatcherServlet請求映射配置為"/",則Spring MVC將捕獲Web容器所有的請求,包括靜態資源的請求,Spring MVC會將它們當成一個普通請求處理,因此找不到對應處理器將導致錯誤。
靜態文件如 .js、.css、圖片等文件也會被攔截,所以需要在springMVC.xml 文件里配置映射路徑,
例如:
<mvc:resources location="/static/css/" mapping="/css/**"></mvc:resources>
需要注意的是,之后引用 css 文件時,正確的寫法如下:
<link rel="stylesheet" href="/項目名/css/xxxxx.css" type="text/css" />
錯誤的寫法如下:
<link rel="stylesheet" href="/css/xxxxx.css" type="text/css" /> 錯誤原因是 映射路徑是從項目內部開始的,也就是說 項目名 沒有辦法忽略掉,當然如果項目名為空,那么這么寫是可以的
或
<link rel="stylesheet" href="css/xxxxx.css" type="text/css" /> 如果項目名為空,這樣寫仍然是錯誤的, 少了一個 "/"。 以"/"開頭時,是指從項目根路徑開始,沒有"/"開頭的話,是相對路徑,從當前頁面開始。
另外,springMVC.xml 文件里配置映射路徑,無法替代 項目名,就是說 location 里包含 項目名 是沒有用的。如下寫法是錯誤的。換句話說,前端文件里引用靜態文件,項目名無法省略。
<mvc:resources location="/項目名/static/css/" mapping="/css/**"></mvc:resources>