添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在SpringBoot中,自定义静态资源映射目录

编写项目时通常将 静态资源放置在resources目录

resources目录又可以根据具体的使用途径分为的public、static、template 等目录
在这里插入图片描述
但是当你将SpringBoot项目打包为 war 包时,将会把图片等项目中所有的静态资源全都打包进去,这显然对于发布维护是非常不方便的,因此我么可以 将静态资源放置在服务器的某些磁盘中 ,并通过SpringBoot进行访问

这里简单举个栗子

编写一个类, 继承WebMvcConfigurer 类,重写addResourceHandlers 方法

先上代码,这里的 addResourceHandler 是用来设置访问路径 的,也就是通过浏览器访问时输入的地址

http://localhost:8443/tryYiTry/具体文件名称

addResourceLocations 是设置的资源映射路径,也就是在磁盘中的真实地址

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 * @author Mi
 * @version 1.0
 * @description: TODO
 * @date 2022/4/17 9:47
@Configuration
public class SpringWebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/tryYiTry/**").addResourceLocations("file:C:/Users/Mi/OneDrive/桌面/图片/");
        //registry.addResourceHandler("/tryYiTry/**").addResourceLocations("file:C:\\Users\\Mi\\OneDrive\\桌面\\图片/");

例如此处,设定静态资源存放的磁盘目录为 “图片”文件夹
那么对应的在磁盘中的路径即为

C:\Users\Mi\OneDrive\桌面\图片

相应的addResourceLocations中的路径就要设置为

file:C:/Users/Mi/OneDrive/桌面/图片/
file:C:\\Users\\Mi\\OneDrive\\桌面\\图片/

注意:这两种都可以成功访问,但是路径必须以“ / ”结尾

启动项目在浏览器中尝试一下,
在这里插入图片描述
即,成功访问到该图片
在这里插入图片描述

场景:部署的Springboot项目,打成jar包,需要通过url直接访问jar外部路径的资源,本人的Springboot为2.1.11.RELEASE。 一、配置WebMvcConfigurer,设置url访问静态资源映射 @Configuration public class WebMvcConfig implements WebMvcConfigurer {
自定义资源映射addResourceHandlers: 在springboot中,我们可以通过重写addResourceHandlers方法来映射静态资源目录; 具体做法:编写类继承WebMvcConfigurerAdapter类,重写该类的addResourceHandlers方法;其中addResourceHandler指向映射路径,addResourceLocations指向资源文件路径;资...
开始我是这样设置的 registry.addResourceHandler("/upload/**").addResourceLocations("file:" + path); 完整代码如下图: path对应的路径在 yml 文件中设置,如下图 然后项目启动后,通过在浏览器中直接访问文件的地址(例如:http://localhost:8090/app...
踩坑由此开始,先开始是用了查询各种绝对路径相对路径各种调试都试了,踩坑至半个多小时,也把对应的博文统统看了一遍,访问本地的资源要么在yml配置绝对路径,要么在addResourceLocations加你本地电脑的路径地址+ //即可,后续我图片地址可以访问了,但是音频访问不了,导致抓狂! 解决方案: 将音频的路径改了又改,也在...
Spring Boot中,静态资源映射是由Spring Boot默认提供的配置完成的。Spring Boot将所有访问映射到以下目录:classpath:/static、classpath:/public、classpath:/resources和classpath:/META-INF/resources。如果这些目录中有多张同名的图片,访问地址的优先级顺序为:META-INF/resources > resources > static > public。\[2\] 如果我们请求一个以".html"结尾的静态资源Spring Boot会按照优先级高的文件夹先查找,然后再查找优先级低的文件夹,直到找到指定的静态资源为止。\[3\] 例如,在src/main/resources/static目录下创建了一个hello.html文件,当我们启动Spring Boot并访问"http://localhost:8080/hello.html"时,就会显示该hello.html页面。\[3\] 总结来说,Spring Boot静态资源映射提供了默认配置,可以直接将静态资源放置在指定的目录中,无需进行额外的配置即可访问这些静态资源。\[1\] #### 引用[.reference_title] - *1* *3* [Spring Boot静态资源映射](https://blog.csdn.net/weixin_64842782/article/details/125089662)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [springboot静态资源映射](https://blog.csdn.net/ChOLg/article/details/102800978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
Tomcat端口被占用:Several ports (8005, 8080, 8009) required by Tomcat v8.0 Server at localhost are already 17956