Springboot多种方法处理静态资源:设置并访问静态资源目录

~目录嗷~
  • 静态文件
  • application设置方法
    • 配置详解
    • 编写配置
    • 优缺点
  • 设置配置类方法
    • 配置详解
    • 编写配置
    • 优缺点
  • 总结

作者:Mintimate

博客:https://www.mintimate.cn
Mintimate’s Blog,只为与你分享

静态文件

静态资源,一般是网页端的:HTML文件、JavaScript文件和图片。尤其是设置图片的静态资源,尤其重要:
静态资源图片静态资源图片这样的静态资源访问不会被Springboot所拦截处理(方便用于CDN加速):
Springboot日志并没有显示

虽然真实项目里,图片可以直接存储在对象存储的存储桶内或者直接用Nginx进行反代,但是一些小的静态资源,直接Springboot规划静态资源,也是个不错的选择。

Springboot内设置静态资源,或者说静态资源文件夹,主要有两种方法(均为SpringMVC实现):

  • application.yml/application.properties内配置。
  • 设置Configuration配置类

更多内容,可以参考Spring官方文档:https://www.baeldung.com/spring-mvc-static-resources

以上两种方法,均可实现用户访问网址,不走Controller层的拦截,直接进行静态文件访问。

application设置方法

配置详解

设置application方法很简单,主要涉及两个配置项:

  • spring.mvc.static-path-pattern:根据官网的描述和实际效果,可以理解为静态文件URL匹配头,也就是静态文件的URL地址开头。Springboot默认为:/**
  • spring.web.resources.static-locations:根据官网的描述和实际效果,可以理解为实际静态文件地址,也就是静态文件URL后,匹配的实际静态文件。Springboot默认为:classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

需要注意:

  • spring.web.resources.static-locations是后续配置,旧版Springboot的配置项为:spring-resources-static-locations;在2.2.5版本之后,旧版本配置已经失效。
  • spring.web.resources.static-locations有多个配置项,在Springboot编译后,会合并为一个文件。多个配置文件,使用,进行分割。
  • spring.web.resources.static-location仅仅允许一个配置,无法使用,进行分割,如果需要多个静态资源文件,可以使用下文的配置类方法。
  • spring.web.resources.static-locations可以使用classpathfile进行匹配。如果使用file,这个时候的相对路径为项目地址(打包为.jar后,相对路径就是.jar运行地址)。

编写配置

现在,官方描述,我们已经知道了配置项的含义。现在我们就来配置。

我使用的是YML格式的application配置,如果你是使用XML格式的application.properties,记得进行更改。

最终效果很简单,我想要的效果:
浏览器输入:http://localhost:8088/SystemData/UserData/Avatar/Mintimate.jpeg
可以直接访问项目文件下的:/SystemData/UserData/Avatar/Mintimate.jpeg
就是这个文件了嗷
为了实现这样的效果,我们编写配置文件:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P8753 [蓝桥杯 2021 省 AB2] 小平方--2024蓝桥杯冲刺省一

点击跳转例题 本题注意有个小坑,因为题上说小于n的一半,我们的惯性思维就是 n/2,所以要改成 n/2.0 ,或者我们分类讨论,判断n是不是偶数,这样就避免C中除法是向下取整。 n&1类似于n%2。二进制表示 11&…

DevOps落地笔记-15|混沌工程:通过问题注入提高系统可靠性

上一课时介绍了通过搭建一套部署流水线,高效、可靠的将软件部署到测试环境以及生产环境。到目前为止,我们学习了从用户需求到软件部署到生产环境交付给用户的全过程。随着软件工程不断发展,近几年,出现了一种新的实践,…

代码随想录算法训练营第二十六天|39 组合总和、40 组合总和||、131 分割回文串

39 组合总和 题目链接:组合总和 思路 这道题目和之前做的组合题目相比,就是它可以包含数组中相同的元素(也就是一个元素可以选择多次)。另外一点就是,这道题目要注意回溯函数的终止条件,否则会无限回溯。 class Solution { pu…

day35 柠檬水找零 根据身高重建队列 用最少数量的箭引爆气球

题目1:860 柠檬水找零 题目链接:860 柠檬水找零 题意 一杯柠檬水5美元,每位顾客只买一杯柠檬水,支付5美玉,10美元,20美元,必须正确找零 开始时并没有零钱 若可以正确找零,则返回…

C#使用RabbitMQ-5_主题模式(主题交换机)

简介 主题模式允许发送者根据主题发布消息,而订阅者可以订阅特定的主题。 在主题模式中,生产者发送的消息被发送到一个交换机(Exchange),该交换机根据消息的路由键(Routing Key)和绑定&#x…

Linux系统安全①iptables防火墙

目录 一.iptables防火墙概述 1.netfilter与iptables (1)netfilter (2)iptables 2.iptables防火墙默认规则表、链结构 二.iptables四表五链 1.四表 2.五链 3.总结 三.iptables的配置 1.安装 2.配置方法 (1…

介绍一个关于 JSON 可视化的网站

最近在看到一个比较好玩的网站,可以将 JSON以可视化的方式展现出现,比如存在一下JSON数据: {"id": "f3bbc3bc-9f34-4bf7-8a0f-7e6f6e6fbb9a","isActive": false,"age": 25,"name": "…

【Qt5小项目】接金币小游戏

代码量在250行左右, 需要源码的可以私信我。

网工内推 | 网络工程师,需持有HCIE,最高16K,午餐补贴

01 科电数据 招聘岗位:网络工程师 职责描述: 1、负责网络及相关安全产品和技术,熟悉相关主流设备(路由器、交换机、防火墙、IPS/IDS、WAF、VPN、负载均衡、网闸)实施维护、安全加固及优化配置技术; 2、负责…

docker 面试问题一

如何将Docker容器迁移到另一个主机? 将Docker容器从一个主机迁移到另一个主机涉及几个步骤,这些步骤主要围绕保存容器状态、传输数据和在新的主机上恢复状态。以下是一个详细的迁移流程: 1. 保存容器状态 要迁移容器,首先需要捕…

(N-142)基于springboot,vue停车场管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本项目分为普通用户和管理员…

[UI5 常用控件] 07.SplitApp,SplitContainer

文章目录 前言1. SplitApp1.1 组件结构1.2 Demo1.3 mode属性 2. SplitContainer 前言 本章节记录常用控件SplitApp,SplitContainer。主要功能是在左侧显示Master页面,右侧显示Detail页面。 Master页面和Detail页面可以由多个Page组成,并支持…

前端工程化之:webpack3-1(css工程化概述)

目录 一、css的问题 1.类名冲突的问题 2.重复样式 3.css文件细分问题 4.如何解决 (1)解决类名冲突 ① 命名约定 ② css in js ③ css module (2) 解决重复样式的问题 ① css in js ② 预编译器 (3…

流浪动物救助|基于Springboot的流浪动物救助平台设计与实现(源码+数据库+文档)

流浪动物救助平台目录 目录 基于Springboot的流浪动物救助平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、动物信息管理 3、商品评论管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设…

编程笔记 html5cssjs 074 Javascript 运算符

编程笔记 html5&css&js 074 Javascript 运算符 一、Javascript运算符1. 算术运算符2. 赋值运算符3. 一元运算符4. 位运算符5. 关系和比较运算符6. 逻辑运算符7. 条件(三元)运算符8. 属性访问和调用运算符9. 删除、new 和 typeof 运算符 二、Javascript运算符的特点小结…

springboot156基于SpringBoot+Vue的常规应急物资管理系统

基于SpringBootVue的常规应急物资管理系统的设计与实现 摘 要 1 ABSTRACT 2 第一章 绪论 3 1.1研究背景 3 1.2研究意义 3 1.3国内外研究现状 4 1.3.1国外研究现状 4 1.3.2国内研究现状 4 1.4研究内容与方法 5 1.4.1研究内容 5 1.4.2研究方法 5 1.5论文的组织结构 5…

postgreSQL之继承

官网地址:http://www.postgres.cn/docs/11/tutorial-inheritance.html 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. 3.6. 继承 继承是面向对象数据库中的概念。它展示了数据库设计的新的可能性。 …

【axios报错异常】: Uncaught ReferenceError: axios is not defined

问题描述: 当前代码在vivo手机和小米手机运行是正常的,点击分享按钮调出相关弹框,发送接口进行分享,但是现在oppo手机出现了问题: 点击分享按钮没有反应. 问题解析: 安卓同事经过查询后,发现打印了错误: 但是不清楚这个问题是安卓端造成的还是前端造成的,大家都不清楚. 问题…

C语言递归与迭代并举:双重视角下的C语言阶乘计算实现

引言 计算一个正整数的阶乘是常见的数学问题。阶乘的定义为:n的阶乘(记作n!)是所有小于及等于n的正整数的乘积。例如,5的阶乘(5!)就是54321120。下面我们将通过一个使用递归方法实现阶乘的C语言代码示例&am…

行测试题答案?分享六个搜题直接出答案的软件 #学习方法#微信

下面,我将为您介绍几款备受大学生欢迎的搜题软件,希望能够帮助您更好地完成学业和提升学习效果。 1.三羊搜题 这是一个公众号 支持大学生网课和各类专业题目答案搜索,这也是一个老公众号了,我身边的很多朋友都在用。 下方附上一…