每次新建一个项目都会为访问不到静态资源烦恼,以下记录访问静态资源的一些问题
使用spring boot项目是一般会使用thymeleaf模板来获取数据,所以必须要导入thymeleaf的坐标
<!-- 导入thymeleaf坐标 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
spring boot默认访问的是static下面的视图信息,所以可以在application.properties的配置文件配置thymeleaf的视图映射:
#thymeleaf模板配置 spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html spring.thymeleaf.mode=HTML5 spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.content-type=text/html spring.thymeleaf.cache=false spring.resources.chain.strategy.content.enabled=true spring.resources.chain.strategy.content.paths=/**
注意classpath:后面的值,无需加**
此时配置的是thymeleaf映射的视图配置:
@GetMapping("login") public ModelAndView login(){ ModelAndView mv = new ModelAndView(); mv.setViewName("index"); return mv; }
这样的方式可以正确映射templates文件下的视图,而不可以使用http://localhost/xx/index.html这样的方式直接访问。
问题:在我们的index.html文件中会引入很多静态资源文件,此时是加载不到的,造成苦恼
解决方案:把img\js\css放入你的static目录下,我是这么处理的。
另外一种访问静态资源的方式:
spring.mvc.static-path-pattern=/static/**