当前位置: 首页 > article >正文

SpringBoot项目中web静态资源的一些问题

1. 在springboot项目中如何使用静态资源:

  1. static、public、resources是springboot可以直接访问的静态资源目录;(如果没有对应目录可以自己创建)
  2. templates目录是springboot访问的不到的目录,需要加入thymeleaf第三方的组件

 

2. 原理:看源码,在WebProperties.class中找到资源默认的路径:


// 进入方法
public String[] getStaticLocations() {
    return this.staticLocations;
}



public Resources() {
    this.staticLocations = CLASSPATH_RESOURCE_LOCATIONS;
    this.addMappings = true;
    this.customized = false;
    this.chain = new WebProperties.Resources.Chain();
    this.cache = new WebProperties.Resources.Cache();
}

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{
"classpath:/META-INF/resources/",
 "classpath:/resources/",
 "classpath:/static/", 
"classpath:/public/"};

 可以得出结论:下面的四个目录是可以被springboot项目识别:


"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/"
"classpath:/public/"

3. 如果要访问templates目录下的静态文件:

首先引入thymeleaf的依赖:

<!--引用thymeleaf的启动器-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


编写Controller类:

@Controller
public class IndexController {

    @RequestMapping("/test")
    public String testIndex01(){
        return "test";//访问test.html页面
    }
    
}

编写静态模板:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>测试</title>
</head>
<body>
<h1>test thymeleaf</h1>
<img th:src="@{/img/lufei.jpg}">
</body>
</html>

4.自定义web访问路径和静态资源访问路径:(在application.properties或者application.yaml配置文件中设置)这里我使用的是application.yaml

#服务器端口号:
server:
  port: 8889

  #设置访问前缀,一般设置首页配置;
  servlet:
    context-path: /jiang

一旦使用自定义了访问静态资源的路径:那springboot默认的路径就失效了:

spring:
  web:
    resources:
      static-locations: classpath:/xxx/,/xxxx/

http://www.kler.cn/a/8077.html

相关文章:

  • 【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
  • Excel粘贴复制不完整的原因以及解决方法
  • NS3学习——tcpVegas算法代码详解(2)
  • cannot import name ‘_C‘ from ‘pytorch3d‘
  • 聚类算法DBSCAN 改进总结
  • 【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)
  • 【C#】NLS_Speed使用说明
  • ToBeWritten之杂项2
  • C-NCAP 2025主动安全ADAS测试研究
  • 面了 6 家大厂,并拿下 5 家 offer,进大厂好像也没有那么困难吧....
  • 【SQL 必知必会】- 第十一课 使用子查询
  • mocha如何实现异步测试
  • 【建站】手把手教你搭建惊艳的博客
  • 【OpenCV-Python】cvui 之 图像
  • 6.数组
  • Spring的Bean初始化过程和生命周期
  • Java基础(十二):枚举类
  • CoreDNS 性能优化
  • 前端项目规范化1:什么是.editorconfig文件以及prettier转换.editorconfig文件属性
  • 【计算机视觉】图像分类模型
  • LIN节点结构和主要技术特点
  • VSCode修改配置(设置settings.json)汇总
  • 【Linux】权限管理
  • 用ChatGPT怎么赚钱?普通人用这5个方法也能赚到生活费
  • Vue——类与样式绑定
  • C语言笔记5-字符串的指针