Spring Boot静态资源路径的配置与修改详解
作者:杼蛘 发布时间:2022-09-15 19:27:08
默认路径
在Spring Boot 2.7.2版本中,查看默认静态资源路径,在WebProperties.class
中如下
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"};
可以看到默认资源路径有4个。
使用Spring Initializr
新建Spring Boot项目,自带static
目录,直接将前端资源文件放到该目录下,启动项目,访问http://localhost:端口号/资源目录/名称.html
即可;
例如,有一个front
目录,该目录下存在一个index.html
文件,将此目录放于src/main/resources/static
下,并且未修改端口号,访问http://localhost:8080/front/index.html
即可看到访问成功。
修改路径
使用配置文件进行修改
对于低版本,在配置文件application.yml
中如下:
spring:
resources:
static-locations: classpath:/
代表将资源目录直接放在src/main/resources/
下
但是,对于高版本,该方式已弃用,不推荐!!!
对于高版本,在配置文件application.yml
中如下:
spring:
web:
resources:
static-locations: classpath:/
高版本这样设置,可以成功访问http://localhost:8080/front/index.html
使用配置类进行修改
新建配置类WebMvcConfig.java
继承WebMvcConfigurationSupport
类
package com.aiw.waimai.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射
* @param registry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始进行静态资源映射。。。");
registry.addResourceHandler("/**").addResourceLocations("classpath:/");
}
}
可以成功访问http://localhost:8080/front/index.html
注意:两种配置方式不可同时存在,并且修改后默认的访问路径就失效了;对于配置类方式,@Slf4j是Lombok提供的注解,方便打印日志,非必须
【更新】网上看到WebMvcConfigurationSupport
已过时,故更新为实现WebMvcConfigurer
接口
package com.aiw.waimai.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Slf4j
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/**
* 设置静态资源映射
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始进行静态资源映射。。。");
registry.addResourceHandler("/**").addResourceLocations("classpath:/");
}
}
来源:https://blog.csdn.net/qq_45917176/article/details/126300050


猜你喜欢
- 上一篇:C# 异步多线程入门到精通之Thread篇下一篇:异步多线程之入Task,待更新启动线程池线程ThreadPool 提供的 API
- 目录定义数据库表访问表中的数据插入数据查询数据创建数据库测试 DaoRoom 是 SQLite 的封装,它使 Android 对数据库的操作
- 线程调用类对象在前面的示例中,我们为线程任务使用了通常的函数。实际上,我们可以使用任何可调用对象或者lambda函数,如下调用类对象的例子:
- 前言:什么是JDBCJava 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户
- Kotlin基础教程之Run,标签Label,函数Function-Type在Java中可以使用{}建立一个匿名的代码块,代码块会被正常的执
- 本文实例为大家分享了Unity实现Flappy Bird游戏的具体代码,供大家参考,具体内容如下参考:腾讯课程(零基础制作像素鸟) 环境:U
- 首先说一下最近自己遇到的一个坑:@Transactionalservice A(){try{insert();serviceB.update
- 使用Button时为了让用户有“按下”的效果,有两种实现方式:1.在代码里面。imageButton.setOnTouchListener(
- 什么是JWT,它是一种对API的保护方案,为什么要进行保护呢防泄漏:你肯定不希望你的数据能被别人随意调用,比如公司的机密信息,不可能每个人都
- C#中为正则表达式的使用提供了非常强大的功能,这就是Regex类。这个包包含于System.Text.RegularExpressions命
- (1)编写接口Animal (Animal.java)public interface Animal{ public abstr
- 前言我们之前介绍了不少有关动画的篇章。前面介绍的动画都是只有一个动画效果,那如果我们想对某个组件实现一组动效,比如下面的效果,该怎么办?st
- 项目框架采用spring+hibernate+springMVC如果上传文件不想使用flash那么你可以采用HTML5;截图前段模块是boo
- 这篇文章主要介绍了Spring案例打印机的实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 1.普通轮询算 * 询(Round Robin,RR)是依次将用户的访问请求,按循环顺序分配到web服务节点上,从1开始到最后一台服务器节点结
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- Java StringWriter流的使用一、StringWriter流定义API说明:在字符串缓冲区中收集输出的字符流,可用于构造字符串,
- Android 自定义标题栏的实例详解开发 Android APP 经常会用到自定义标题栏,而有多级页面的情况下还需要给自定义标
- 协程属于Kotlin中非常有特色的一项技术,因为大部分编程语言中是没有协程这个概念的。那么什么是协程呢?它其实和线程有点相似,可以简单地将它
- 最近正在学习c#,对其中的方法重写和隐藏的概念很是模糊,现在将其归纳如下:1:方法重写:就是在基类中的方法用virtual关键字来标识,然后