Springboot web静态资源配置

简介: Springboot web静态资源配置

Springboot web静态资源配置

  1. 资源文件配置与访问
    1.Springboot中默认的静态资源路径
    2.自定义静态资源路径
    3.两种访问静态资源的方式
  2. 其他静态资源路径配置方式
    1.继承WebMvcConfigurerAdapter
    2.优化配置

首先,我们在templates文件夹下面创建一个名为index的html5页面

启动项目,浏览器输入:localhost:8080/index.html
你会发现页面是404,这时候我们是访问不了这个页面的。然后你可能会说localhost:8088/templates/index.html,你会发现都不行都不行!

因为Springboot的默认资源配置里面没有这个templates路径,但是有static路径。

1 .Springboot中默认的静态资源路径:

  1. classpath:/static,
  2. classpath:/public,
  3. classpath:/resources,
  4. classpath:/META-INF/resources,

classpath 在项目中就相当于src/main/resources文件夹.

就是说如果你把html文件直接放在static路径下面是可以直接访问的,有两种访问方式

当你添加了start-web的依赖,resources下面是会默认生成一个static文件夹以及templates文件夹。

2.自定义静态资源路径

spring.resources.static-locations=classpath:templates/

我们配置了静态资源路径映射之后,我们只能访问这个路径下面的资源,也就是相当于自定义了静态资源路径,就是说默认的静态资源路径都会失效。

3.两种访问静态资源的方式

一种是直接通过特定的URL访问:我们配置好后,启动项目,浏览器输入:localhost:8088/index.html 就可以正常访问我们的静态资源了。

然后还有一种访问资源的方法。是使用代码是实现的。

我们在和启动文件同级目录下面创建一个controller文件夹,然后创建一个Testcontroller,代码如下:

@Controller
public class TestController {
    @RequestMapping("/getHtml")
    public String getHtml(){
        return "index.html";
    }
}

说明:这个@Controller ,意思标记这个类为控制类,或者说他是一个Springmvc controller对象,标记之后,默认这个类的所有方法返回的是一个页面。然后这个@RequestMapping的注解是一个用来处理请求地址映射的注解,可用于类或方法上。用于方法之上时,你可以通过URL直接访问这个方法。它还有一些其他的参数,这里就不讲解了。后面会出一期Springboot常用注解的说明。有兴趣的可以 wx 搜索 全栈学习笔记。

到这里,我们就可以利用自定义URL访问静态资源了。在浏览器里面输入:localhost:8080/getHtml 也能正常访问静态资源。图片也是一样的

3. 其他静态资源路径配置方式

1. 继承WebMvcConfigurerAdapter

我们通过重写这个类的addResourceHandlers方法,定义资源路径

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("/","classpath:templates/");
        super.addResourceHandlers(registry);
    }
}

2. 优化配置

你会看到之前的那种利用代码的URL路径访问静态资源文件的写法,我们需要在返回的地方写上文件的名称以及文件的后缀名,当我们要返回某一类型的文件时,这样写就相对比较麻烦,所以我们可以通过以下配置来解决这个问题。

#加前缀
spring.mvc.view.prefix=/
#加后缀
spring.mvc.view.suffix=.html

通过以上的配置,我们之前的controller里面的方法返回就可以写成这样。

@RequestMapping("/getHtml")
    public String getHtml(){
        return "index";
    }

总结:

静态资源配置路径的两种常用方式: 一种是默认配置,一种是自定义配置,自定义配置可以是代码配置,可以是配置文件里面配置。这两种配置方式都会使原来默认的配置方式失效

静态资源的访问方式有两种:一种是自己用代码定义路径,然后访问,一种是直接利用特定的URL方式访问静态资源。

目录
相关文章
|
3天前
|
前端开发 数据库
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置到项目中的静态资源下、图片可以在前端回显(二))
这篇文章是关于如何在SpringBoot+Vue+token的环境下实现表单和图片上传的优化篇,主要改进是将图片保存位置从磁盘指定位置改为项目中的静态资源目录,使得图片资源可以跨环境访问,并在前端正确回显。
|
6天前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
4天前
|
存储 缓存 Ubuntu
如何在 Apache Web 服务器中安装、配置和使用模块
如何在 Apache Web 服务器中安装、配置和使用模块
14 0
|
4天前
|
应用服务中间件
2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
这篇文章提供了在IntelliJ IDEA中配置Tomcat服务器的详细步骤,包括添加Tomcat Server、选择安装路径、添加项目Artifact,以及创建和展示Web项目的流程。
|
5天前
|
存储 Ubuntu 应用服务中间件
如何在虚拟专用服务器上配置 Nginx Web 服务器
如何在虚拟专用服务器上配置 Nginx Web 服务器
9 0
|
5天前
|
存储 Ubuntu 测试技术
如何在 Ubuntu 或 Debian VPS 上配置 Apache Web 服务器
如何在 Ubuntu 或 Debian VPS 上配置 Apache Web 服务器
18 0
|
7天前
|
JSON 前端开发 Java
springBoot——Web开发简介【七】
springBoot——Web开发简介【七】
8 0
|
18天前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
|
21天前
|
安全 IDE 编译器
深入理解PHP 7的新特性及其对现代Web开发的影响
【7月更文挑战第30天】本文将深入探索PHP 7版本中引入的关键新特性,并分析这些改进如何优化现代Web开发实践。通过对比PHP 5和PHP 7的性能差异,我们将揭示PHP 7如何提升应用响应速度和资源利用效率。此外,本文还将讨论PHP 7对开发者工作流程的影响,包括新的语言特性、错误处理机制以及内置函数的增强,旨在为读者提供全面了解PHP 7所带来的变革性影响。
|
1天前
|
缓存 前端开发 JavaScript
高效开发现代 Web 应用:从前端到后端的最佳实践
在开发现代 Web 应用时,前端和后端技术的选择对项目的性能、可维护性和用户体验至关重要。本文将探讨如何通过现代工具和框架来优化前端和后端开发流程。我们将分析前端技术(如 React 和 Vue.js)与后端技术(如 Node.js 和 Django)的集成,并提供实际案例来展示如何实现高效开发。无论是对新手还是经验丰富的开发者,本指南都提供了宝贵的洞见和实用的技巧,以帮助提高开发效率并构建出色的 Web 应用。