2012-09-04 231 views
1

我有.JSP頁面樣式設置爲:Spring MVC的資源路徑

<link rel="stylesheet" type="text/css" href="resources/styles/main.css" /> 

它的工作原理很好的鏈接:

  • 本地主機/ webapp的
  • 本地主機/ Web應用程序/ dir

但是當我嘗試「localhost/webapp/dir/0「我得到一個404錯誤代碼。

的servlet-context.xml的

<mvc:resources mapping="/resources/**" location="/resources/" /> 

回答

1

Nickdos答案是正確的,但我通常不同的解決這個問題。你可以使用BASE tag。您在每個頁面的頭部聲明它,並且所有相關鏈接(<a href>)和資源(<script>, <img>, ...)都將基於此href。因此,使用EL你可以做這樣的事情(很抱歉,但我不能在此刻嘗試):

<base href="${request.scheme}://${request.serverName}:${request.serverPort}${request.contextPath}/" />

1

你的路徑是相對的,所以如果你在不同的 「深度」 渲染你的JSP頁面,鏈接失敗。爲避免這種情況,請通過添加一個前導斜槓來使用絕對URL路徑。 Spring/servlet容器可以自動爲你插入URL的上下文部分,這樣如果你將它部署爲「ROOT」web應用程序,該應用程序就可以工作。要做到這一點,你可以使用一個<c:url>標籤,但我寧願寫的JSP代碼少了一個符合:

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/styles/main.css" />