Spring mvc:资源多个位置

时间:2013-07-12 07:36:36

标签: xml spring-mvc

文档说:

  

从Spring资源模式指定的服务静态内容的资源位置。每个位置都必须指向一个有效的目录。可以将多个位置指定为以逗号分隔的列表,并按指定的顺序检查给定资源的位置。例如,值“/,classpath:/ META-INF / public-web-resources /”将允许从Web应用程序根目录和包含/ META-INF /的类路径上的任何JAR提供资源。 public-web-resources /目录,Web应用程序根目录中的资源优先。

我将资源放在我的应用程序之外,如下所示:

  • 共同
    • CSS
    • JS​​
  • 模块1
    • CSS
    • JS​​
  • 模块2
    • ...

我希望localhost/%module_name%/resources/提供特定于模块的资源,并在localhost/%module_name%/resources/common/提供公共资源

在module1的 web-context.xml 中,我有:

<mvc:resources mapping="/resources/**" location="${spring.view.resourcesDir}/"/>

当我设置spring.view.resourcesDir=file:///c://resources//module1请求时 localhost/module1/resources/css工作正常。

但是当我设置

spring.view.resourcesDir=file:///c://resources//module1,file:///c://resources//

一切都中断,localhost/module1/resources/csslocalhost/module1/resources/common/css都会返回 404 错误。 如果位置没有嵌套,也会发生同样的事情,即使第二个位置完全不同,例如file:///d://

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的问题的答案在您的问题中

  

root和包含

的类路径上的任何JAR

它应该在你的类路径下。如果它不在您的类路径下,则会出现404错误。我不明白你为什么要指定绝对路径?不是一个好的选择。