Spring MVC - 从应用程序上下文外部访问静态资源

时间:2014-10-31 15:35:00

标签: java spring spring-mvc glassfish

我有一个Web应用程序,其中每个JSP都应链接到帮助pdf文件。这些文件位于Web容器/应用程序上下文之外,但位于同一服务器中。

我正在尝试使用spring mvc资源标记访问它们,但我仍然无法访问pdf文件。

感谢任何帮助。

这是配置 在Windows环境中,文件位于 C:\ workspace \ shared \ data \ help [所有pdf都在这里]

我创建了一个jvm参数来访问文件 -

JVM Argument

-Dhelp.dir=/workspace/shared/data/help

spring mvc资源标记 -

<mvc:resources  mapping="/help/*" location="file:/#{systemProperties.help.dir}/"/>

我在尝试访问pdf时遇到404错误

Glassfish / JDK 1.6

当我点击链接时,生成的URL是 -

http://localhost:8080/workspace/shared/data/help/abc.pdf

我的实际Web应用程序上下文是这样的 -

http://localhost:8080/MyApp

1 个答案:

答案 0 :(得分:0)

您只需要一个使用SpEL语法的小修补程序

<mvc:resources  mapping="/help/*" location="file:#{systemProperties['help.dir']}"/>

和JVM参数:

-Dhelp.dir=/workspace/shared/data/help/

使用前导和尾随斜杠来完成所有工作

见:http://wordgraphs.com/post/1751/Serving-a-resource-from-outside-the-context-root-in-Spring-MVCSpring Expression Language (SpEL)