精华内容
下载资源
问答
  • springboot2配置静态资源
    2020-06-08 16:02:26

    SpringBoot中有两项静态资源配置项:
    1、spring.mvc.static-path-pattern
    2、spring.resources.static-locations
    配置出差错时,导致404错误,找不到静态资源;

    1、 spring.mvc.static-path-pattern

    它代表的是应该以什么样的路径来访问静态资源,也就是只有静态资源满足什么样的匹配条件,Spring Boot才会处理静态资源请求。官方的配置为:

    # 这里表示只有静态资源的访问路径为/resources/**时,才会处理请求
    spring.mvc.static-path-pattern = /resources/**
    

    假定采用默认的配置端口,那么只有请求地址类似于“http://localhost:8080/resources/jquery.js”时,Spring Boot才会处理此请求,处理方式是将根据模式匹配后的文件名查找本地文件,那么应该在什么地方查找本地文件呢?这就是“spring.resources.static-locations”的作用了。

    2、 spring.resources.static-locations

    这是一个列表性的配置,用于说明静态资源文件的查找路径,查找文件是会依赖于配置的先后顺序依次进行,默认的官方配置如下:

    spring.resources.static-locations = classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources
    

    继续以上面的请求地址为例,“http://localhost:8080/resources/jquery.js”就会在上述的四个路径中依次查找是否存在“jquery.js”文件,如果找到了,则返回此文件,否则返回404错误。

    2.1、配置file路径

    需要指定的是一个具体的硬盘路径时,需要使用file,其他的使用classpath指的是系统环境变量;

    file.uploadFolder = /home/uploadFiles/
    spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${file.uploadFolder}
    

    3、静态资源的Bean配置

    “spring.mvc.static-path-pattern”与“spring.resources.static-locations”组合起来演绎了nginx的映射配置,如果熟悉Spring MVC,那么理解起来更加简单,它们的作用可以用Bean配置表示,如下:

    @Configuration
    @EnableWebMvc
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/resources/**")
                    .addResourceLocations("/public-resources/")
                    .setCacheControl(CacheControl.maxAge(1, TimeUnit.HOURS).cachePublic());
        }
    }
    

    或者等同与以下的XML;

    <mvc:resources mapping="/resources/**" location="/public-resources/">
        <mvc:cache-control max-age="3600" cache-public="true"/>
    </mvc:resources>
    

    4、总结

    “spring.mvc.static-path-pattern”用于阐述HTTP请求地址,而“spring.resources.static-locations”则用于描述静态资源的存放位置。

     

    注:

    这里特别说明下上述配置中提到的classpath。SpringBoot项目创建完成后,会生成该项目名称+iml后缀的文件。该文件位于项目的根目录下。打开后,在name="NewModuleRootManager"的component声明中,会有几个默认content声明。其中sourceFolder 中声明的就是classpath,只是类型不同。

    更多相关内容
  • 静态资源路径2. 修改静态资源访问前缀3. 自定义静态资源路径4. 欢迎页 index.html5. 自定义网站图标6. 源码解析6.1 默认静态资源路径配置6.2 为什么配置静态资源前缀,欢迎页访问会失效 静态资源 版本信息:...

    静态资源

    版本信息:SpringBoot 2.6.1
    官方文档

    1. 静态资源路径

    classpath路径下(也就是 src/main/recources)

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

    放在以上四个目录下的静态资源可以通过浏览器直接访问
    访问方式: http://localhost:端口/xx.png

    如果访问404可以 clean 一下然后重启试一下(根本就不需要去改配置文件,重写addResourceHandlers() 之类的)

    2. 修改静态资源访问前缀

    spring:
      mvc:
        static-path-pattern: /res/**
    

    访问方式: http://localhost:端口/res/xx.png

    3. 自定义静态资源路径

    spring:
      web:
        resources:
          static-locations: classpath:/myres/
    

    4. 欢迎页 index.html

    当静态资源路径下有 index.html 时,我们访问 http://localhost:端口/ 时就会展示 index.html

    注意: 不能配置 spring.mvc.static-path-pattern,否则会导致 index.html 不能被访问

    5. 自定义网站图标

    将名为 favicon.ico 的图标放在静态资源目录下,就可以修改如下所示位置的网站图标
    在这里插入图片描述

    6. 源码解析

    6.1 默认静态资源路径配置

    org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#addResourceHandlers
    在这里插入图片描述
    查看getStaticLocations() 方法可以看到源码中 CLASSPATH_RESOURCE_LOCATIONS 数组中定义了静态资源的路径
    在这里插入图片描述

    6.2 为什么配置了静态资源前缀,欢迎页访问会失效

    如下所示,源码中判断了前缀必须是 /** ,所以如果我们改成了其他的前缀,欢迎页的默认访问就失效了
    在这里插入图片描述

    展开全文
  • 首先用的templates 放置html 然后application.yml 加入 spring: resources: static-locations: classpath:/static/

    首先用的templates 放置html

    然后application.yml 加入

    spring:
        resources:
          static-locations: classpath:/static/
    

    展开全文
  • 实际项目中,特别是前后端分离的项目,SpringBoot后台打包(jar包)后,以jar包形式直接启动服务后,项目中包含的静态资源则无法动态修改。此时,需要配置一个外部的映射路径来实现静态资源访问和修改、上传功能等。...

    使用场景

    实际项目中,特别是前后端分离的项目,SpringBoot后台打包(jar包)后,以jar包形式直接启动服务后,项目中包含的静态资源则无法动态修改。此时,需要配置一个外部的映射路径来实现静态资源访问和修改、上传功能等。

    SpringBoot版本说明

    2.3.4.RELEASE
    

    在这里插入图片描述

    添加外部路径配置

    staticPath为自定义的外部资源物理路径,放在配置文件中,如:D:/Tasks/

    application.properties文件内容如下:

    server.port=8086
    server.servlet.context-path=/iserver
    spring.output.ansi.enabled=ALWAYS
    spring.mvc.static-path-pattern=/static/**
    spring.mvc.format.date=yyyy-MM-dd HH:mm:ss
    
    project.static = D:/Tasks/
    

    配置映射

    添加WebMvcConfig,如下:

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    
    @Configuration
    public class WebMvcConfig extends WebMvcConfigurationSupport {
    
        @Value("${project.static}")
        private String staticPath;
    	/**
    	* 跨域
    	**/
    	@Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
            		.allowedHeaders("*")
                    .allowedOrigins("*")
                    .allowedMethods("POST","GET","PUT","OPTIONS","DELETE")
                    .allowCredentials(true);
        }
        /**
         * 静态资源处理
         **/
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/file/**").addResourceLocations("file:" + staticPath);
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        }
    }
    

    测试访问

    在D盘新建Tasks文件夹,在新建js文件夹,存放jquery-3.1.1.min.js
    在这里插入图片描述
    正常启动项目,在浏览器输入地址: http://localhost:8086/iserver/file/js/jquery-3.1.1.min.js

    在这里插入图片描述
    如图所示,项目启动后我们可以正常访问到配置路径下的静态资源。

    展开全文
  • 不单只是静态资源打包,比如使用本地某个目录作为文件存储,也可通过WebMvcConfigurer接口来配置。 在与前端交互的过程中,也会碰到一个跨域的问题。我们也可通过WebMvcConfigurer接口来解决跨域的问题。 ...
  • 首先在IDEA中新建springboot项目,指定静态资源位置:在application.yml写入如下配置 项目目录截图如下: 最后controller层: 如果配置了shiro需求加入如下过滤,防止样式被过滤重定向:
  • SpringBoot配置静态资源映射的四种常用方式,实现用户请求后端服务器接口和文件路径,自动映射到配置的文件柜地址下的相对路径文件。
  • 主要介绍了springboot项目访问静态资源配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • spring: # 配置静态资源访问前缀 mvc: static-path-pattern: /res/** # 配置静态资源路径 web: resources: static-locations: classpath:/123/
  • SpringBoot配置静态资源目录

    千次阅读 2021-11-05 09:51:19
    在我们日常开发中,需要配置js、css、图片等静态资源访问目录,当然了,这些资源最好是通过nginx分发比较合适,这里就不多说了,我们先看看SpringBoot如何配置静态资源目录 首先创建项目 二、SpringBoot默认的...
  • Spring boot通过WebMvcConfigurer接口配置静态资源访问路径 @Configuration public class MyWebAppConfiguration implements WebMvcConfigurer { @Override public void addResourceHandlers...
  • 使用SpringBoot搭建web项目时静态资源的访问必然是一个需要考虑的问题,不过SpringBoot在对于静态资源访问的问题上已经做了很好的支持,下面就静态资源访问的正确姿势进行说明。 一、静态资源配置 SpringBoot默认从...
  • 2.静态资源的访问顺序 默认情况下是按照存放静态资源路径的数组顺序访问的。也即按照下面的访问顺序: 如上图所示,在这种情况下,访问index.html。那么访问的是里面的index.html。结论:springboot会查找优先级高的...
  • springboot静态资源配置

    千次阅读 2021-11-09 22:52:32
    静态资源放置在这四个路径下可以直接访问,如果想更改springboot静态资源文件夹存放位置,可以在配置文件中添加 spring.web.resources.static-locations=classpath:/res/ spring: web: resources: static-...
  • SpringBoot项目中,默认有5个位置可以用来存放静态资源,分别为:1、classpath:/META-INF/resources/2、classpath:/resources/3、classpath:/static/4、classpath:/public/5、/源码解析 WebMvcAutoConfiguration ...
  • SpringBoot静态资源访问配置

    千次阅读 2022-02-07 17:48:00
    一、默认静态资源映射规则 Spring Boot 默认将 / 的所有访问映射到以下目录: classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources 接下来,在 main/resources下新建 static...
  • # 配置静态资源在硬盘上的位置 spring.resources.static-locations=file:\\d:\\dist\\ # 或spring.resources.static-locations=file:///d:/dist/ # spring.mvc.static-path-pattern=/** # 只有通过http://ip:port/...
  • 相信小伙伴们都发现了在springboot项目中导入web依赖之后并没有...其实我们创建springboot项目时resources包下会自带两个文件夹:static与template这两个文件夹,这里springboot官方文档对于静态资源配置有相应的叙述
  • 配置文件配置映射 spring: mvc: #图片访问地址路径 static-path-pattern: /file/** throw-exception-if-no-handler-found: true resources: #静态资源映射地址 static-locations: classpath:/METAINF/resources/,...
  • SpringBoot访问静态资源 一.默认的访问静态资源的几种方式:  在src/main/resources/目录下创建static 文件夹  在src/main/resources/目录下创建resources文件夹  在src/main/resources/目录下创建public...
  • 今天小编就为大家分享一篇关于SpringBoot静态资源目录访问,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • SpringBoot 实战: 静态资源分发配置 文章目录SpringBoot 实战: 静态资源分发配置正文1. 默认配置2. 在 application.yml 中配置3. 实现 WebMvcConfigurer 配置3.1 实现按命名空间划分静态资源4. 总结其他资源参考连接...
  • 2. ServletContext 根目录下访问静态资源 2.1application.yml配置简书 在yml之前使用的配置文件形式是xml或properties文件他们太过繁琐,而且会出现大量重复的代码。而yml文件结合了两者的优势,新增节点配置不再...
  • springboot如何释放静态资源

    千次阅读 2021-12-01 18:29:29
    2、在springboot中进行如下配置,放行以下css、js、jpg静态资源 2.1、首先在application.yml配置 spring: mvc: static-path-pattern: classpath:/static/** 2.2、在启动类同级目录下新建config文件夹,该文件夹...
  • 一、静态资源访问 1、springboot自带默认的存放路径 2、测试访问资源 二、设置静态资源访问前缀 1、在配置文件中设置 2、测试访问 三、指定自己的静态资源访问路径文件夹 1、在配置文件中配置 ...
  • 首先新建一个类,这个类属于适配器类型,放在配置相关的包下即可,或者放在拦截器过滤器一类的包下。 package com.hahaha.intercept; import org.springframework.beans.factory.annotation.Value; import org....
  • springboot静态资源访问路径配置 简介 springboot 默认为我们提供了静态资源处理,使用WebMvcAutoConfiguration中的配置各种属性。 在一般情况下,springboot提供的默认配置方式能够满足需求,如果想要完全控制...
  • SpringBoot静态资源配置

    2020-12-09 15:48:44
    springboot默认的静态资源配置如下时 spring.mvc.static-path-pattern=/** 默认配置情况下,比如说要访问common.js资源,那么访问路径为http://localhost:8080/js/common.js

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,334
精华内容 14,933
关键字:

springboot2配置静态资源

spring 订阅