2013-04-23 52 views
4

有沒有辦法返回位於.jar歸檔中的JavaScript?目前我有以下結構:將JavaScript作爲靜態資源從Jar歸檔中返回

webapp 
    resources 
     scripts 
      SomeJavaScript.js 
      ... 

這樣的.js文件的列表非常大。有一個包含所有這些文件的.jar文件。

在Spring配置文件我有:

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

由我的分發程序Servlet處理所有靜態資源。但是,我希望它從.jar文件中讀取JavaScript文件。最簡單的方法是什麼?

我認爲寫這樣的目的我自己的控制器不是最好的選擇。

PS:我已經找到了following solution

我使用的是嵌入式的Tomcat 7,使用Maven插件啓動它。 這裏的mentioned資源文件需要在WEB-INF/lib/{\*.jar}/META-INF/resources之下,但是看裏面的spring-js-resources.jar,實際位置是WEB-INF/lib/{\*.jar}/META-INF/web-resources。生成的頁面包含以下鏈接:

<script type="text/javascript" src="/SomeProjectName/dojo/dojo.js"></script> 

並且此文件不可用。我能做些什麼來解決這個問題?

謝謝。

回答

5

您可以使用mvc:resources標記通過向locations屬性添加classpath:路徑來顯示類路徑上的.jar文件的內容。

我相信,在你的情況下,它會是這樣

<mvc:resources mapping="/resources/**" location="/resources/, classpath:/META-INF/web-resources/"/> 

更多信息Spring MVC documentation

+0

我已經閱讀了文檔,並且我同意你的意見,它應該有所幫助,但事實並非如此。另外,我將war文件部署到tomcat 7 webapps(不可嵌入的)中,但它也沒有幫助。 – Alexandr 2013-04-24 07:24:01

+0

其實它幫助!我忘了在jsp頁面中更新我的url。我將它設置爲:它有幫助!非常感謝您的回覆。我真的很疲勞與春天,maven等和它的配置。沒有發展。只有配置戰爭:( – Alexandr 2013-04-24 07:38:04

+0

是的,我同意路徑相關的問題是最令人沮喪的之一;也許設置Spring的日誌級別DEBUG/TRACE將幫助?它通常打印所有嘗試的位置一個接一個。 – kryger 2013-04-24 09:23:50