springboot读取静态资源⽂件的⽅式
springboot的请求路径⼀般会经过Controller处理,但是静态资源⽂件在请求之后是直接返回的。这涉及到俩个配置项。
spring.mvc.static-path-pattern=/**
上⾯俩个是他们的默认配置,如果项⽬中没有任何配置,项⽬会以这种配置执⾏。
spring.mvc.static-path-pattern指的是请求路径。
举例说明:
如果配置为
spring.mvc.static-path-pattern:/static/**,
spring怎么读多个文件
即localhost:8088/static/index.html的请求会是⼀个静态请求;⽽localhost:8088/index.html的请求不是⼀个静态请求。
那么localhost:8088/static/index.html这个请求,就会在现在static⽬录下,寻index.html⽂件(注意:寻的是index.html⽂件,⽽不是static/index.html),如果到了响应请求,如果不到,再在public⽂件夹下寻。在需要注意的是,在另外:spring是先处理Controller请求的,当项⽬中有处理static/index.html路径的⽅法时,如图:
请求是不会去寻静态资源的。
这种配置⽅式是在application.properties⽂件中配置的,除此之后还可以在项⽬中配置。
项⽬中配置⽅式:
package p.config;
import t.annotation.Configuration;
import org.springframework.fig.annotation.ResourceHandlerRegistry;
import org.springframework.fig.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
}
}
这两种⽅式的配置是同事存在的,并不冲突。
另外写在html中的静态路径需要注意的问题:
正确写法:<script src="/static/layui/layui.js">
错误写法:<script src="static/layui/layui.js">
static前的/,⼀定要写好,否则会在请求js时出现404.
原因:
正确请求的路径:localhost:8088/static/layui/layui.js
错误请求的路径:localhost:8088/thymeleaf/static/layui/layui.js
即,如果不写/,那么最终的请求会加上处理该请求的Controller类的RequestMapping,如图

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。