[英]Spring MVC static resource location and mapping
我在Spring MVC中處理css文件時遇到問題。 css文件的位置和映射有問題。
如果css文件位於:
-src
-main
+java
+resources
-webapp
-css
style.css
+WEB-INF
(Maven項目)
我用:
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:annotation-driven/>
在dispatcher-servlet.xml
,並使用以下命令在jsp
進行訪問:
<head>
<title>Insert title here</title>
<link href="/css/style.css" rel="stylesheet" type="text/css">
</head>
使用JSTL c標簽解決上下文路徑問題:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
...
<link rel="stylesheet" type="text/css" href="<c:url value='/css/style.css'/>"/>
這將為您提供:
<link rel="stylesheet" type="text/css" href="/{context-path}/css/style.css"/>
建議使用此標記,並且您應該用它包裝所有url,因為JSLT處理器將為您生成正確的上下文路徑,即使您以后決定更改上下文路徑而不必遍歷所有jsp文件中的每個鏈接。
要解決此問題,以便您的代碼可以在生產中使用的實際路徑下運行,請在JSP頁面中使用<base>
標記,如下所示:
<base href="http://localhost:8081/table/" target="_blank" />
這將確保可以使用完整路徑來表示JSP頁面中的所有其余相對路徑:
<link href="/css/style.css" rel="stylesheet" type="text/css">
為了進一步閱讀,這里是Mozilla開發人員中心關於HTML基本元素用法的參考。 此外,此博客文章也可能有助於您透視使用客戶端代碼,尤其是當您與不是Java開發人員的Web設計人員一起工作時。
注意:此外,如果將@gigadot的建議解決方案結合使用以將c:url標記與基本標記一起使用,則可以避免需要編輯站點上的每個鏈接並弄亂HTML的麻煩,同時仍可以base標簽是動態的,因此,如果您更改上下文路徑,它仍然會在所有地方反映出來,但是不會將您緊密地綁定到框架。
我鏈接到該答案,以便將使用<c:url
標記的功勞歸功於@gigadot,並在此處進行記錄,以便其他人可以從一起使用兩者的結合知識中受益。
<base href="<c:url value='/table' />" target="blank" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.