I have webproject which has images inside src/main/webapp folder. I would like to place images in different folder on the disk. But I have no idea how to manage requests to reach this images.
Should I create some kind of httpServlet
like shown here: http://balusc.omnifaces.org/2007/07/fileservlet.html
Or as I use Spring MVC with java configuration, there is more suitable and simpler way.
Looking forward for your suggestions.
Use the spring mvc support for static resources, its location
attribute is an Spring Resource
, so you could use file:
prefix
<resources mapping="/resources/**" location="file:/my/external/directory/" />
or
@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 for a table that list all prefixed for resources
In my case I placed js and css resources in webapp and images in e://images/
.
For this case I use two mvc:resources
mapping
<mvc:resources mapping="/resources/**" location="/resources/"/>
<mvc:resources mapping="/images/**" location="file:e://images/"/>
And locate the image of e: > images > abc.jpg using ....
<img src="../images/abc.jpg"/>
You could try also <img src="/images/abc.jpg"/> or <img src="images/abc.jpg">
(If not work)
The css/js linked under webapp > resources > js > xyz.js like below.
<script type='text/javascript' src='../resources/js/xyz.js'></script>