在spring中怎么配置静态

不及物动词 其他 38

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Spring中配置静态资源有以下几种方式:

    1. 在web.xml中配置
      在web.xml中添加如下内容:
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
    

    这样配置后,所有以.css、.js、.jpg结尾的请求将会被DispatcherServlet处理,而不会交给服务器默认的Servlet处理,从而实现了静态资源的配置。

    1. 使用mvc:resources标签配置
      在spring-mvc.xml文件中添加如下内容:
    <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>
    

    这里的/static/**表示映射的URL路径,/WEB-INF/static/是静态资源的位置。这样配置后,请求/static/目录下的资源就会直接被返回,而不会交给Controller处理。

    1. 使用@EnableWebMvc注解和实现WebMvcConfigurer接口
      在Spring的配置文件中添加@EnableWebMvc注解,并实现WebMvcConfigurer接口,示例如下:
    @Configuration
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("/WEB-INF/static/")
                    .setCachePeriod(31556926);
        }
    }
    

    这里通过addResourceHandlers方法来添加静态资源的处理器,设置了资源的URL路径和存放位置,并且设置了缓存时间。

    总结:
    以上是Spring中配置静态资源的几种方式,可以根据实际情况选择合适的方式来配置,以满足项目的需求。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Spring中,配置静态资源是通过"WebMvcConfigurer"接口来实现的。这个接口提供了多个方法,你可以通过重写这些方法来配置静态资源的处理。

    下面是一些配置静态资源的常见方法:

    1.配置静态资源文件夹的位置:
    可以通过实现"WebMvcConfigurer"接口,并重写"addResourceHandlers"方法来配置静态资源文件夹的位置。以下是一个简单的例子:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
        }
    }
    

    在这个例子中,我们将"/static/**"路径下的静态资源映射到"classpath:/static/"目录下。

    2.配置静态资源缓存:
    通过重写"addResourceHandlers"方法的同时,还可以配置静态资源的缓存策略。以下是一个例子:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/")
                    .setCacheControl(CacheControl.maxAge(Duration.ofDays(7)));
        }
    }
    

    在这个例子中,我们将静态资源的缓存策略设置为7天。

    3.配置WebJars:
    WebJars是一种将静态资源(如JavaScript、CSS等)打包成JAR文件并发布到Maven仓库的方法。通过添加相应的依赖,可以直接引用WebJars中的静态资源。以下是一个例子:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/webjars/**")
                    .addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    }
    

    在这个例子中,我们将"/webjars/**"路径下的静态资源映射到"classpath:/META-INF/resources/webjars/"目录下,让Spring能够正确加载WebJars中的静态资源。

    4.定义默认的首页:
    通过配置"ViewControllerRegistry"来定义默认的首页。以下是一个例子:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/")
                    .setViewName("forward:/index.html");
        }
    }
    

    在这个例子中,我们将"/"路径重定向到"/index.html"页面。

    5.忽略静态资源的拦截:
    有时候,我们可能想要忽略一些静态资源的拦截,使其不受安全拦截器的保护。可以通过配置"WebSecurity"来实现。以下是一个例子:

    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Override
        public void configure(WebSecurity web) throws Exception {
            web.ignoring().antMatchers("/static/**");
        }
    }
    

    在这个例子中,我们将"/static/**"路径下的静态资源忽略拦截。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Spring框架中,可以通过配置WebMvcConfigurer来配置静态资源。下面是一些具体的方法和操作流程:

    1. 创建一个类,并实现WebMvcConfigurer接口:
    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
        
    }
    
    1. 重写addResourceHandlers方法,来配置静态资源的访问路径和存放位置:
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
    }
    

    上面代码配置了一个静态资源处理器,将以/static/开头的URL请求映射到classpath下的/static/目录下的静态资源。

    1. 在Spring的配置文件中引入该配置类:
    @Configuration
    @EnableWebMvc
    @ComponentScan(basePackages = "com.example")
    public class AppConfig extends WebMvcConfigurerAdapter {
        
        @Bean
        public WebMvcConfig webMvcConfig(){
            return new WebMvcConfig();
        }
        
    }
    

    上述配置类中使用@ComponentScan注解来指定需要扫描的包路径。@EnableWebMvc注解开启了Spring的Web Mvc配置。

    1. 在静态资源文件夹中放置静态资源。比如,在classpath:/static/下放置一个名为style.css的静态文件。

    2. 在浏览器中访问静态资源。通过访问http://localhost:8080/static/style.css即可访问到style.css文件。

    通过以上的步骤,就可以在Spring中配置静态资源了。注意,静态资源的存放位置和URL访问路径需要根据实际情况进行配置。此外,还可以对静态资源进行缓存、gzip压缩等配置。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部