Spring boot静态资源访问

静态资源映射

默认情况下,当我们想要在前台页面使用服务器端的静态文件(如css,js,js库,图片等)时,我们只要将这些文件放在以下目录中的任意一个:

  • /META-INF/resources/
  • /resources/
  • /static/
  • /public/
    在这里插入图片描述

如果这四个目录中有相同的静态资源文件,静态资源的默认访问优先级为:/META-INF/resources/>/resources/>/static/>/public/

修改静态资源映射的方法

  • 修改这两个属性来改变静态资源的映射,比如我们的所有静态资源都在myres目录中,并且我们希望访问静态资源的的url都带有/myres/这个目录前缀:
    在这里插入图片描述
  • 继承WebMvcConfigurerAdapter类,并且重写addResourceHandlers方法就行,该操作与上面的方法得到的效果是一样的
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurationSupport {
    /**
     * 注册静态资源访问路径url以及静态资源存放位置,优先级按添加顺序
     *
     * @param registry
     */
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/myres/**").addResourceLocations("classpath:/myres/").addResourceLocations("classpath:/static/").addResourceLocations("file:H:/myimgs/");
        super.addResourceHandlers(registry);
    }
}

Webjar

因为所有/webjars/**都去classpath:/META-INF/resources/webjars/找资源,而默认情况下classpath:/META-INF/resources/webjars/是优先级最高的,所以在使用时要注意的是spring.mvc.static-path-pattern= xxx的设置,比如设置为:

spring.mvc.static-path-pattern=/static/**

则在使用webjar时要在前面加上/static/前缀:

<script src="/static/webjars/jquery/3.2.1/jquery.min.js"></script>
发布了32 篇原创文章 · 获赞 3 · 访问量 6037

猜你喜欢

转载自blog.csdn.net/PH15045125/article/details/84962162