Spring从磁盘上的外部文件夹获取文件和图像,在webapps之外?

时间:2015-12-02 20:19:31

标签: java spring resources external

我有webproject,其中包含src / main / webapp文件夹中的图像。我想将图像放在磁盘上的不同文件夹中。但我不知道如何管理访问此图像的请求。 我应该创建某种httpServlet,如下所示:http://balusc.omnifaces.org/2007/07/fileservlet.html

或者当我使用带有java配置的Spring MVC时,有更合适和更简单的方法。

期待您的建议。

2 个答案:

答案 0 :(得分:7)

使用弹簧mvc support for static resources,其location属性为Spring Resource,因此您可以使用file:前缀

<resources mapping="/resources/**" location="file:/my/external/directory/" />

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
                .addResourceLocations("file:/my/external/directory/");
    }
}

@See Spring Reference Chapter 6.4 The ResourceLoader查找列出所有资源前缀的表

答案 1 :(得分:5)

在我的案例中,我将js和css资源放在webapp和e://images/中的图像中。 对于这种情况,我使用两个mvc:resources映射

<mvc:resources mapping="/resources/**" location="/resources/"/>
<mvc:resources mapping="/images/**" location="file:e://images/"/>

找到 e:&gt;的图片图像&gt; abc.jpg 使用....

<img src="../images/abc.jpg"/>

你也可以尝试<img src="/images/abc.jpg"/> or <img src="images/abc.jpg">(如果不行)

webapp&gt;下链接的css / js资源&gt; js&gt; xyz.js 如下所示。

<script type='text/javascript' src='../resources/js/xyz.js'></script>