SpringBoot 配置静态资源映射
SpringBoot 配置静态资源映射
(嵌入式servlet容器)先决知识
- request.getSession().getServletContext().getRealPath("/"),这个很重要,将其称为 docBase,即 “文档基目录”
- 在单模块项目中,如果不存在 src/main/webapp 目录,则 docBase 被设置为C盘下临时的随机目录,例如 C:\Users\Administrator\AppData\Local\Temp\tomcat-docbase.2872246570823772896.8080\
- 在多模块项目中,要留意jvm启动路径。无论该启动路径是位于父模块的路径下还是子模块的,如果jvm启动路径下不存在 src/main/webapp 目录,则 docBase 被设置为C盘下临时的随机目录
综上,如果想要依照传统方式通过“文档基目录”去定位文档资源(html、css、js),则要确保存在 src/main/webapp 目录,即 docBase 不会被设置为随机目录;否则,建议直接设置 SpringBoot 将其定位至 classpath 下的资源(即 src/main/resource 目录下的资源),具体配置如下
1.当不存在 @EnableWebMVC 时
- SpringBoot 的 @EnableAutoConfiguration 会启用自动配置类 WebMvcAutoConfiguration,该类配置了一些默认的静态资源映射
- 自动映射 localhost:8080/** 为以下路径
- classpath:/resources/
- classpath:/static/
- classpath:/public/
- classpath:/META-INF/resources/
- 自动映射 localhost:8080/webjars/** 为以下路径
- classpath:/META-INF/resources/webjars/
- 自动映射 localhost:8080/** 为以下路径
- 此时,我们不需要多做什么,只要将静态资源放入 src/main/resources 目录下的 resources、static 或 public 文件夹下,即可通过 url 定位相关资源,例如 localhost:8080/index.html 可定位至 src/main/resources/static/index.html
- 注意:如果编写了以下的自定义配置,则以上默认配置将被取消。更确切的说,一旦自定义的配置不为空,则默认配置将不被采用。
@Configuration
public class GoWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//配置静态资源处理
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/resources2/", "classpath:/static2/",
"classpath:/public2/", "file:///tmp/webapps/");
}
}
如果不喜欢代码配置,也可采取以下属性配置方式:
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\
classpath:/static/,classpath:/public/,file:D://hehe
附,有一个不常用的相关属性如下
//默认值,URL访问采用 /**
spring.mvc.static-path-pattern=/**
//URL访问必须采用 /pomer/** 的形式
spring.mvc.static-path-pattern=/pomer/**
//URL访问必须采用 /12345/** 的形式
spring.mvc.static-path-pattern=/12345/**
2.当存在 @EnableWebMVC 时
- 如果使用了 @EnableWebMvc,则自动配置类 WebMvcAutoConfiguration 会失效,因此默认映射路径 /static, /public, META-INF/resources, /resources 都将失效
- 这种情况下,只能设置自定义配置
- 无任何前缀 -> “文档根目录”(一般指代 src/main/webapp 目录), 例如 localhost:8080/index.html 定位至 src/main/webapp/static/index.html
- 存在前缀 classpath -> 类路径(一般指代 src/main/resources 目录)
- 存在前缀 file:// -> 文件系统路径(“绝对路径”)
@Configuration
public class GoWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//配置静态资源处理
registry.addResourceHandler("/**")
.addResourceLocations("resources/", "static/", "public/",
"META-INF/resources/")
.addResourceLocations("classpath:resources/", "classpath:static/",
"classpath:public/", "classpath:META-INF/resources/")
.addResourceLocations("file:///tmp/webapps/");
}
}
SpringBoot 配置静态资源映射的更多相关文章
- spring-boot配置静态资源映射的坑:properties文件不能添加注释
如此博文所述,Spring Boot 对静态资源映射提供了默认配置 默认将 /** 所有访问映射到以下目录:classpath:/staticclasspath:/publicclasspath:/r ...
- SpringBoot:静态资源映射、定制404、配置icon
目录 静态资源映射规则 定制首页 定制错误页面 配置 icon 静态资源映射规则.定制首页.定制404页面.配置网站的图标 静态资源映射规则 SpringBoot中对于静态资源(css,js,img. ...
- springboot配置静态资源访问路径
其实在springboot中静态资源的映射文件是在resources目录下的static文件夹,springboot推荐我们将静态资源放在static文件夹下,因为默认配置就是classpath:/s ...
- Springboot添加静态资源映射addResourceHandlers,可实现url访问
@Configuration //public class WebMvcConfiger extends WebMvcConfigurerAdapter { public class WebMvcCo ...
- IntelliJ IDEA+SpringBoot中静态资源访问路径陷阱:静态资源访问404
IntelliJ IDEA+SpringBoot中静态资源访问路径陷阱:静态资源访问404 .embody{ padding:10px 10px 10px; margin:0 -20px; borde ...
- Django1.7如何配置静态资源访问
Django是非常轻量级的Web框架,今天散仙来看下如何在Django中配置静态的资源访问路径,一个中等规模的网站,可能就会有很多静态的资源需要访问,无论是html,txt,还是压缩包,有时候访问这些 ...
- 零基础学习java------39---------json格式交互,Restful(不懂),静态资源映射,SSM整合(ssm整合思想,application.xml文件详解(声明式事务管理),)
一. json格式交互(知道) 1 . 回顾ajax基本语法 $.ajax({ url:"", // 请求的后台路径 data:{"":"" ...
- Springboot学习02-webjars和静态资源映射规则
Springboot学习01-webjars和静态资源映射规则 前言 1-以前我们在IDEA中创建一个项目,添加web依赖包,我们现在是一个web应用,应该在man目录下面有一个webapp文件夹,将 ...
- Spring Boot 静态资源映射与上传文件路由配置
默认静态资源映射目录 默认映射路径 在平常的 web 开发中,避免不了需要访问静态资源,如常规的样式,JS,图片,上传文件等;Spring Boot 默认配置对静态资源映射提供了如下路径的映射 /st ...
随机推荐
- LVS负载均衡简单配置
一.简单介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtu ...
- Qt Creator快捷键设置
QT Creator 下载地址 http://download.qt.io/ 一.快捷键配置方法: 进入“工具->选项->环境->键盘”即可配置快捷键. 二.常用默认快捷键: 编 ...
- c#图像处理入门(-bitmap类和图像像素值获取方法)
c#图像处理入门 -bitmap类和图像像素值获取方法 一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义 ...
- 剑指offer面试题16:反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点.解题思路:单向链表只能实现单向遍历,改变链表方向就是要把当前链表的节点指向它的前一个节点,一旦当前链表指向发生了变化,就 ...
- 解决Jenkins安装的时区问题
正常情况下,jenkins是Java执行在Java容器,比如tomcat容器之下,只要改了tomcat的时区就行.我这里是为了方便后续的代码可用性测试,用的是Ubuntu中apt在线安装,也只是安装了 ...
- JavaScript的文档对象模型DOM
小伙伴们之前我们讲过很多JavaScript的很多知识点,可以点击回顾一下: <JavaScript大厦之JS运算符>: <JavaScript工作原理:内存管理 + 如何处理4个常 ...
- .net的服务转移
问题: 服务器换新,但是本来服务器部署了一些window服务,需要迁移过来 解决过程: 百度了估计几百页了,之前因为老机器挂了,写这个代码布服务的人也早就不在了,所以自己闷头苦找,一个java初级程序 ...
- Python的基础语法(二)
0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...
- 厉害了,Spring Cloud for Alibaba 来了!
最近,Spring Cloud 发布了 Spring Cloud Alibaba 首个预览版本:Spring Cloud for Alibaba 0.2.0. 大家都好奇,这和阿里巴巴有什么关系?莫非 ...
- Vue 项目 Vue + restfulframework
Vue 项目 Vue + restfulframework 实现登录认证 - django views class MyResponse(): def __init__(self): self.sta ...