如何在Spring启动时配置Spring mvc静态资源映射配置:<mvc:resources mapping ... />?

beh*_*m27 2 spring spring-mvc spring-boot

我想用spring boot开发web应用程序,我想在jsp文件中解决我的javascript和css资源.我从dispatcher-servlet.xml中的jsp配置我对这些文件的访问,如下所示:

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" />
Run Code Online (Sandbox Code Playgroud)

在我的jsp文件中,我可以使用下面的代码来访问:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
 <img class="first-slide home-image" src="<spring:url value="/resources/images/back1.jpg"/>" alt="First slide">
Run Code Online (Sandbox Code Playgroud)

我怎么做配置mvc:资源映射在春季启动?

Evg*_*rov 10

看看文档.

默认情况下,Spring Boot将从类路径中的/ static(或/ public或/ resources或/ META-INF/resources)目录或ServletContext的根目录中提供静态内容.

您也可以使用与您发布的xml相同的Java配置.只需覆盖扩展addResourceHandlers@Configuration类的方法WebMvcConfigurerAdapter

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
Run Code Online (Sandbox Code Playgroud)

关于Spring资源的一篇好博文 - 这里.

更新:

  1. 请注意,对于Spring boot 2.0.5或更高版本,WebMvcConfigurerAdapter已弃用.相反,我们可以implements WebMvcConfigurer.
  2. 请注意,对于Windows,我们应该将字符串参数传递给addResourceLocations方法,如下所示: .addResourceLocations("file:///D:/beijing_pic_sample/")

  3. 可以在此处找到相关的线程:如何使用Spring Boot来提供位于Dropbox文件夹中的静态内容?