Spring Boot访问静态资源css/js,你真的懂了吗

 更新时间:2021年05月13日 10:37:30   作者:异常编程  
在搭建springboot时经常需要在html中访问一些静态资源,很多朋友不清楚如何在 Spring Boot中访问静态资源,本文给大家带来两种解决方案,感兴趣的朋友跟随小编一起看看吧

一、前言

我们用 Spring Boot 搭建 Web 应用时(如搭建一个博客),经常需要在 Html 中访问一些静态资源,比如:

  • css 样式;
  • js 脚本;
  • favicon.ico 图标等;

而在 Spring Boot 中如果没有做任何配置,是无法直接访问静态资源的,通常会报 404 错误:

二、Spring Boot 访问静态资源的默认目录

Spring Boot 访问静态资源,默认有两个默认目录:

  • classpath/static 目录:src/mian/resource
  • ServletContext 根目录下: src/main/webapp

啥是 classpath呢 ?

这里简要的介绍下,classpath 即 WEB-INF 下面的 classes 目录 ,在 Spring Boot 项目中就是src/main/resource 目录。

2.1 classpath 目录下-访问默认文件夹名为 static

项目目录截图:

访问截图:

这里有人就想说,我可不可以修改一下访问路径呢,答案是肯定的,肯定可以。

properties文件里面设置 spring.resources.static-locations 就ok了。

spring.resources.static-locations 的默认值是:classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

图示修改:我将默认路径改成了 src/main/resource/static/images/,在里面我写了一个 index.html 里面写的 html img

访问的时候就找的是我设置的路径了。

2.2 ServletContext 根目录下( src/main/webapp ) - webapp 就是默认访问文件夹

这个可能很多人就不陌生了,一般来说 src/main/java 里面放Java代码,resource 里面放配置文件, xml, webapp里面放页面,js之类的。

ServletContent 根目录就是 src/main/webapp

一般创建的maven项目里面都没有 webapp 文件夹,在这里我们自己在 src/main 目录下创建一个 webapp

项目目录,以及访问截图:

三、Spring Boot 访问静态资源解决方案

上面知识点主要做些科普,至于如何在 Spring Boot 访问静态资源,可以通过以下两种方案来解决以上问题:

3.1 第一种方案(推荐)

修改 application.yml , 添加以下配置:

# 放开 Spring Boot 项目中 /static 目录下静态资源的拦截
spring:
  mvc:
    static-path-pattern: /static/**

application.properties 文件添加如下:

spring.mvc.static-path-pattern=/static/**

3.2 第二种方案

添加一个 WebMvcConfig.java 配置类,告诉 springboot 静态资源的加载路径:

package com.exception.qms.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * @author www.exception.site 异常教程
 * @date 2019/2/5
 * @time 14:37
 * @discription
 **/
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
    }
}

二选一,添加完成后,我们就可以在 Spring Boot 中正常访问静态资源辣~

到此这篇关于Spring Boot访问静态资源css/js你真的懂了吗的文章就介绍到这了,更多相关Spring Boot静态资源css/js内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java利用钉钉机器人实现发送群消息

    Java利用钉钉机器人实现发送群消息

    这篇文章主要为大家详细介绍了Java语言如何通过钉钉机器人发送群消息通知,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-09-09
  • java使用itext如何直接生成pdf

    java使用itext如何直接生成pdf

    在工作中,制作PDF文件是常见需求,尤其是需要插入动态数据或图像时,使用PDF模板填充表单域通常足够,但对于复杂文件,可以通过拼接PDF内容来灵活排版,iText库提供了丰富的PDF操作功能,如设置页面大小、边距、字体、生成动态表格、添加水印、设置密码等
    2024-09-09
  • 分析ABA问题的本质及其解决办法

    分析ABA问题的本质及其解决办法

    CAS的全称是compare and swap,它是java同步类的基础,java.util.concurrent中的同步类基本上都是使用CAS来实现其原子性的。本文将介绍ABA问题的本质及其解决办法。
    2021-06-06
  • 浅谈Java实现面向对象编程java oop

    浅谈Java实现面向对象编程java oop

    这篇文章主要介绍了浅谈Java实现面向对象编程java oop,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java代理模式与动态代理之间的关系以及概念

    Java代理模式与动态代理之间的关系以及概念

    代理模式是开发中常见的一种设计模式,使用代理模式可以很好的对程序进行横向扩展。动态代理:代理类在程序运行时被创建的代理方式。关键在于动态,程序具有了动态特性,可以在运行期间根据不同的目标对象生成动态代理对象
    2023-02-02
  • Java实现几种序列化方式总结

    Java实现几种序列化方式总结

    本篇文章主要介绍了Java实现几种序列化方式总结,包括Java原生以流的方法进行的序列化、Json序列化、FastJson序列化、Protobuff序列化,有兴趣的可以了解一下,
    2017-03-03
  • mybatis 运行时加载自定义mapper文件方式

    mybatis 运行时加载自定义mapper文件方式

    这篇文章主要介绍了mybatis 运行时加载自定义mapper文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java中dubbo+zookeeper微服务架构简介

    Java中dubbo+zookeeper微服务架构简介

    Apache Dubbo是一款高性能的 Java RPC 框架,这篇文章主要介绍了Java中dubbo+zookeeper微服务架构,需要的朋友可以参考下
    2021-09-09
  • java实现学生管理系统(面向对象)

    java实现学生管理系统(面向对象)

    这篇文章主要为大家详细介绍了java实现学生管理系统(面向对象),文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 详解如何在低版本的Spring中快速实现类似自动配置的功能

    详解如何在低版本的Spring中快速实现类似自动配置的功能

    这篇文章主要介绍了详解如何在低版本的Spring中快速实现类似自动配置的功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05

最新评论