使用SpringBoot如何实现加载静态资源

  介绍

这篇文章给大家介绍使用SpringBoot如何实现加载静态资源,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在SpringBoot中加载静态资源和在普通的网络应用中不太一样。默认情况下,弹簧引导从类路径下一个叫/静态(/,/参考资料或/meta - inf/资源)的文件夹或ServletContext从根目录提供静态内容。下面我们来写个例子看一下就会一目了然了:首先看一下项目的目录结构:

使用SpringBoot如何实现加载静态资源

我们在资源下面的模板目录下建一个home的文件,完整目录为:src/home/主/资源/模板。html。内容如下:

& lt; !DOCTYPE HTML>   & lt; html xmlns: th=癶ttp://www.thymeleaf.org"比;   & lt; head>   & lt;元charset=皍tf-8"/比;   & lt; title> ConanZhang的首页& lt;/title>   & lt;/head>   & lt; body>   我是首页:   & lt; !——& lt;图像th: src=https://www.yisu.com/zixun/癅{/图像/267862 - 1212151 - z12099.jpg} "/> - ->         

如果我们想要访问home应该怎么做呢?我们先来看第一种方式:

1,我们在web.controller这个包下面建一个控制器类:ThymeleafTestController。代码内容如下:

包com.zkn.learnspringboot.web.controller;
  
  进口org.springframework.stereotype.Controller;
  进口org.springframework.web.bind.annotation.RequestMapping;/* *
  *由wb-zhangkenan alt="使用SpringBoot如何实现加载静态资源"> 

因为SpringBoot集成了Thymeleaf,所以它会默认查找资源下面的模板这个目录下的文件.templates这个目录的名字不要写错了。接着我又有了这样的需求,假设我想在我的home中引入一些其他的静态资源文件,比如我想在家里。html中引入一张图片:那我们应该怎么做呢?

首先,我们需要在资源下面建一个静态或者公开的目录,你不建立目录也行,直接放到资源下面,接着我们再建立一个图像的目录,最终的目录结构如图所示:

使用SpringBoot如何实现加载静态资源

我们在图像这个目录下放入一张图片,然后我们在家里。html中引入一下这张图片,最终的代码如下:

& lt; !DOCTYPE HTML>   & lt; html xmlns: th=癶ttp://www.thymeleaf.org"比;   & lt; head> WebMvcConfigurerAdapter   & lt;元charset=皍tf-8"/比;   & lt; title> ConanZhang的首页& lt;/title>   & lt;/head>   & lt; body>   我是首页:   & lt;图像th: src=https://www.yisu.com/zixun/盄{/图像/267862 - 1212151 - z12099.jpg}”宽度=" 100 px高度=" 50 px "/>         

看到上面的写法你可能会有些奇怪,th: src和@{}这都是什么鬼。其实这是Thymeleaf的语法.@{}是引入外部资源用的。下面我们再来访问一下,结果如下图所示:

使用SpringBoot如何实现加载静态资源

这样我们就访问到了图像目录下的图片了。

可能会有人说难道我只能放到静态的,公共或者直接放到资源下面吗?我换个目录就不行了吗?那当然不是这样的,下面我们来换另外一种写法:

在我现在的这个项目中前台是用React-redux写的,后台SpringBoot只是用来提供接口的,我只需要一个首页来把编译后的React-redux引入到项目中就可以了,如果我想直接访问这个首页那我应该怎么做呢? SpringMVC为我们提供了这样的一个类:WebMvcConfigurerAdapter。我们就是借助于这个类来实现我们需要的功能的。我们写一个类来继承这个类,代码如下:

包com.zkn.learnspringboot.config;
  
  进口org.springframework.context.annotation.Configuration;
  进口org.springframework.util.ResourceUtils;
  进口org.springframework.web.servlet.config.annotation.EnableWebMvc;
  进口org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  进口org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/* *
  *由wb-zhangkenan alt="使用SpringBoot如何实现加载静态资源"> 

注意了这里我们是直接访问的home。这个文件。和我们预期的效果是一样的。接着可能会有人说:如果我也想在家里。html中引入静态资源要怎么办呢?比如说上面的那个例子,我要引入一个一张图片。也简单,那我们就再注册一个资源处理器就好了. java代码如下:

使用SpringBoot如何实现加载静态资源