Springboot中静态文件的两种引入方式总结

下面是详细的“Springboot中静态文件的两种引入方式总结”的攻略:

1. 静态文件的常规引入方式

在Springboot项目中,我们可以将静态文件放置在项目的“resources/static”目录下,这些文件就可以被访问到。

在html文件中,我们可以用如下代码来引入静态文件:

<link rel="stylesheet" href="/css/mystyle.css">
<script src="/js/myjs.js"></script>

这里需要注意的是,“/”代表项目的根目录,而不是文件系统的根目录。

在Thymeleaf模板中,我们可以用如下代码来引入静态文件:

<link rel="stylesheet" th:href="@{/css/mystyle.css}">
<script th:src="@{/js/myjs.js}"></script>

可以看到,在Thymeleaf模板中,我们需要使用“@{}”来包裹静态文件的路径,并且需要在路径前面添加“/”。

2. 静态文件的自定义引入方式

如果我们需要将静态文件存放在项目以外的目录下,或者是以jar包形式部署项目,我们就需要使用自定义的方式来引入静态文件。

自定义引入静态文件的方式有两种:一种是通过实现WebMvcConfigurer接口来添加静态文件处理器(Handler),另一种是通过自定义静态文件的处理器(Handler)。

下面将分别介绍这两种方式:

2.1. 实现WebMvcConfigurer接口方式

要实现自定义静态文件处理方式,我们需要新建一个类,实现WebMvcConfigurer接口,并重写addResourceHandlers方法。

示例代码如下:

@Configuration
public class StaticResourceConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/myfiles/**")
                .addResourceLocations("file:/opt/mystaticfiles/");
    }
}

上面的代码中,我们将/opt/mystaticfiles/目录下的文件映射到了/myfiles/路径下,这样访问“/myfiles/mystyle.css”时就会去/opt/mystaticfiles/mystyle.css的文件中读取。

2.2. 自定义静态文件处理器(Handler)

另外一种方式,我们可以通过自定义Handler,来实现静态文件的自定义处理方式。

我们需要新建一个类,继承WebMvcConfigurationSupport,重写addResourceHandlers方法,并在使用@ResourceHandler注解来指定处理器的路径和缓存时间等信息。

示例代码如下:

@Configuration
public class CustomStaticResourceConfig extends WebMvcConfigurationSupport {

    @Resource
    private CustomStaticResourceHandler customStaticResourceHandler;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/myfiles/**")
                .setCachePeriod(3600)
                .resourceChain(true)
                .addResolver(customStaticResourceHandler);
    }
}

我们还需要定义一个自定义的Handler,代码如下:

@Component
public class CustomStaticResourceHandler extends VersionResourceResolver {

    public CustomStaticResourceHandler() {
        super("**");
    }

    @Override
    public Resource resolveResource(HttpServletRequest request, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) {
        return super.resolveResource(request, requestPath, locations, chain);
    }
}

上面的代码中,我们自定义了一个CustomStaticResourceHandler的处理器,继承了VersionResourceResolver,并在重写的resolveResource方法中,调用了父类的resolveResource方法来处理静态文件的访问。

在上面的代码中,我们将自定义的Handler设置为了/myfiles/路径下的静态文件处理方式,可以直接访问“/myfiles/mystyle.css”等文件。

至此,“Springboot中静态文件的两种引入方式”就讲解完毕了,希望可以帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot中静态文件的两种引入方式总结 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JQuery表单验证插件EasyValidator用法分析

    JQuery表单验证插件EasyValidator用法分析 简介 JQuery表单验证插件EasyValidator是一款简单易用的表单验证工具,它使用简单,功能强大,可自定义规则,支持异步验证,支持表单序列化,支持多语言等特性。本篇攻略将详细介绍EasyValidator的使用方法和示例。 使用步骤 引入EasyValidator插件的js和css文件 &…

    Java 2023年6月15日
    00
  • Java Apache Commons报错“ConcurrentModificationException”的原因与解决方法

    当使用Java的Struts框架时,可能会遇到“ActionFormException”错误。这个错误通常由以下原因之一起: 表单验证失败:如果表单验证失败,则可能会出现此错误。在这种情况下,需要检查表单验证以解决此问题。 表单配置错误:如果表单配置错误,则可能会出现此错误。在这种情况下,需要检查表单配置以解决此问题。 以下是两个实例: 例1 如果表单验证失…

    Java 2023年5月5日
    00
  • Java Apache POI报错“EncryptedDocumentException”的原因与解决办法

    “EncryptedDocumentException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 文档加密:如果文档被加密,则可能会出现此异常。例如,可能会尝试打开受密码保护的Excel文档。 以下是两个实例: 例1 如果文档被加密,则可以尝试使用正确的密码以解决此问题。例如,在Java中,可以使用以下代码: FileInp…

    Java 2023年5月5日
    00
  • 【MongoDB for Java】Java操作MongoDB数据库

    MongoDB是开源的、高性能的文档型数据库,而Java作为一种流行的编程语言,有丰富的工具和库支持MongoDB。本文将详细说明Java操作MongoDB数据库的完整攻略,具体过程包括以下几个步骤: 安装MongoDB驱动 Java操作MongoDB需要先安装MongoDB的Java驱动,可以通过Maven等依赖工具导入: <dependency&g…

    Java 2023年6月1日
    00
  • 【C#基础】Substring截取字符串的方法小结(推荐)

    当我们需要截取一个字符串的部分内容时,可以使用C#内置的Substring方法,它可以根据指定的位置和长度,从原始字符串中截取出一个新字符串。 Substring方法的基本使用 Substring方法用于截取字符串的一部分,可以根据指定的位置和长度获取字符串的一部分内容,其基本语法如下: public string Substring(int startIn…

    Java 2023年5月19日
    00
  • Springboot实现密码的加密解密

    Spring Boot提供了多种加密方式,其中最常用的是使用BCrypt的加密方式。下面介绍Spring Boot如何使用BCrypt实现对密码的加密和解密。 1. 添加依赖 首先,需要在pom.xml文件中添加spring-boot-starter-security依赖。 <dependency> <groupId>org.spri…

    Java 2023年5月19日
    00
  • spring boot请求异常处理并返回对应的html页面

    当我们在开发Spring Boot应用时,可能会遇到很多请求异常的情况。如何处理这些异常并且返回对应的HTML页面呢?下面我将会为您提供一份完整的攻略。 步骤1:添加依赖 要实现请求异常处理并返回对应的HTML页面,我们需要添加thymeleaf和spring-boot-starter-web两个依赖。 在pom.xml文件中添加以下依赖: <depe…

    Java 2023年5月25日
    00
  • Springboot 如何关闭自动配置

    关闭Spring Boot自动配置的方式主要有以下两种: 使用exclude属性 Spring Boot允许我们通过在@EnableAutoConfiguration注解上使用exclude属性来禁用某些自动配置类。我们可以指定一个或多个自动配置类,以便在Spring Boot的启动过程中被排除。例如: @SpringBootApplication(excl…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部