在Web应用程序中,我需要提供位于应用程序上下文目录之外的静态内容(图像)。整个应用程序架构要求我使用Tomcat来执行此操作。我想我可以从Spring的<mvc:resources>
中受益,以配置应用程序URL和目录内容之间的映射。但是AFAIK它的mapping
属性只处理上下文相关或类路径映射。因此,我想用什么:
<mvc:resources location="/images/**" mapping="/absolute/path/to/image/dir"/>
不起作用。因为我宁愿避免编写一个简单的文件传输servlet,如果有人能给我一些关于现有Spring解决方案/解决方法的建议,我会很高兴。
非常感谢。
荷马
答案 0 :(得分:34)
<mvc:resources>
可以从外部提供资源,您需要使用通常的Spring resource path syntax:
<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/>
答案 1 :(得分:2)
还有一个简单的修正
代码应该是
<mvc:resources mapping="/images/**" location="file:/absolute/path/to/image/dir/"/>
你注意到了区别吗? 你需要把&#39; /&#39;在绝对路径的尽头。
或者您可以使用java配置
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String rootPath = System.getProperty("user.home");
String imagePath = "file:"+rootPath + File.separator + "tmpFiles/";
System.out.println(imagePath);
registry.addResourceHandler("/resources/**").addResourceLocations("resources/");
registry.addResourceHandler("/tmpFiles/**").addResourceLocations(imagePath);
}
它为我工作。