2012-10-27 29 views
0

我正在嘗試使用資源標記將我的靜態元素與Spring MVC鏈接起來 - 我無法弄清楚它們的位置。Spring MVC Resources

我出版我的鏈接爲 -

<link rel="stylesheet" href="/css/elements.css"> 

我已經把下的文件 - 的WebContent /資源/ CSS/elements.css

我用我的servlet的資源標籤 -

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

我錯過了什麼嗎?

回答

2

您顛倒了這兩個屬性。 locations是文件位於Web應用程序根目錄中的位置。 mapping是用於從瀏覽器訪問資源的url模式。所以配置應該是

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

正如the documentation解釋。

+0

改變了這一切,但仍然得到一個404 – user1755645

+0

這哪裏是在文檔中?文檔的首頁不是特別有用。 – bschlueter

+0

@bschlueter這就是爲什麼我沒有鏈接到首頁,而是鏈接到處理此配置的文檔的特定部分。給瀏覽器一些時間來加載完整的長頁面。 –

0

用c發現的錯誤..:網址公佈的絕對路徑幫助:)

現在我出版我的網址爲

&lt;link rel="stylesheet" href="&lt;c:url value="/css/slideshow.css" />"> 
+0

這是回答錯字還是沒有錯誤? – djangofan

2

你有你的資源在「資源」文件夾中,這樣你在調度程序xml中添加了以下行。

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

並且此資源文件夾必須位於「webcontent」文件夾中。 然後,您需要通過使用上下文路徑來訪問資源。

<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/elements.css"> 

試試看。它應該工作。

0

如果您使用的是相對於Tomcat根上下文的位置,那麼您需要這樣做。這個和其他的答案之間的區別是,我包括在位置映射應用程序上下文:

<mvc:resources location="/webapp-name/resources/" mapping="/resources/**"/> 

屬性「映射」是相對於類路徑而「位置」是相對於的Tomcat根。 (注:這些都不是「相對」的URL)

這個配置將提供訪問子文件夾中的資源,如/resources/css/*