【问题标题】:Return JavaScript as static resource from a Jar archive从 Jar 存档中将 JavaScript 作为静态资源返回
【发布时间】:2013-04-16 06:43:42
【问题描述】:

有没有办法返回位于 .jar 存档中的 JavaScript?目前我有以下结构:

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>

而且此文件不可用。我能做些什么来解决这个问题?

谢谢。

【问题讨论】:

    标签: javascript spring-mvc webresource


    【解决方案1】:

    您可以通过将classpath: 路径添加到locations 属性来使用mvc:resources 标记在类路径上公开.jar 文件的内容。

    我相信你的情况会是这样的

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

    Spring MVC documentation 中的更多信息。

    【讨论】:

    • 我已经阅读了文档,我同意你的观点,它应该有帮助,但它没有。另外,我将war文件部署到tomcat 7 webapps(不是嵌入式的)中,但它也没有帮助。
    • 其实有帮助!我忘记在 jsp 页面中更新我的 url。我将其设置为: 它有帮助!!!!非常感谢您的回复。我真的厌倦了与spring,maven等及其配置作斗争。不是发展。只有配置战争:(
    • 是的,我同意与路径相关的问题是最令人沮丧的问题之一。也许将 Spring 的日志记录级别设置为 DEBUG/TRACE 会有所帮助?它通常会一一打印所有尝试过的位置。
    猜你喜欢
    • 2013-01-16
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2014-10-02
    • 2018-08-26
    • 1970-01-01
    相关资源
    最近更新 更多