在SpringBoot中加载静态资源和在普通的web应用中不太一样。默认情况下,spring Boot从classpath下一个叫/static(/public,/resources或/META-INF/resources)的文件夹或从ServletContext根目录提供静态内容。下面我们来写个例子看一下就会一目了然了:首先看一下项目的目录结构:
我们在resources下面的templates目录下建一个home.html的文件,完整目录为:src/main/resources/templates/home.html。内容如下:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<title>ConanZhang的首页</title>
</head>
<body>
我是首页:
<!--<image th:src="@{/image/267862-1212151Z12099.jpg}"/> -->
</body>
</html>
如果我们想要访问home.html应该怎么做呢?我们先来看第一种方式:
1、我们在web.controller这个包下面建一个Controller类:ThymeleafTestController.代码内容如下:
package com.zkn.learnspringboot.web.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by wb-zhangkenan on 2016/11/30.
*/
@Controller
@RequestMapping("thymeleaf")
public class ThymeleafTestController {
@RequestMapping("home")
public String getHome(){
return "home";
}
}
写到这里你一定非常眼熟,这不就是SpringMVC的写法吗?没错就是SpringMVC的写法:下面我们来访问一下:http://localhost:8003/thymeleaf/home。结果如图所示:
因为SpringBoot集成了Thymeleaf,所以它会默认查找resources下面的templates这个目录下的文件。templates这个目录的名字不要写错了。接着我又有了这样的需求,假设我想在我的home.html中引入一些其他的静态资源文件,比如我想在home.html中引入一张图片:那我们应该怎么做呢?
首先,我们需要在resources下面建一个static或者public的目录,你不建立目录也行,直接放到resources下面,接着我们再建立一个image的目录,最终的目录结构如图所示:
我们在image这个目录下放入一张图片,然后我们在home.html中引入一下这张图片,最终的代码如下:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>WebMvcConfigurerAdapter
<meta charset="utf-8"/>
<title>ConanZhang的首页</title>
</head>
<body>
我是首页:
<image th:src="@{/image/267862-1212151Z12099.jpg}" width="100px" height="50px" />
</body>
</html>
看到上面的写法你可能会有些奇怪,th:src和@{}这都是什么鬼。其实这是Thymeleaf的语法。@{}是引入外部资源用的。下面我们再来访问一下,结果如下图所示:
这样我们就访问到了image目录下的图片了。
可能会有人说难道我只能放到static、public或者直接放到resources下面吗?我换个目录就不行了吗?那当然不是这样的,下面我们来换另外一种写法:
在我现在的这个项目中前台是用React-redux写的,后台SpringBoot只是用来提供接口的,我只需要一个首页来把编译后的react-redux引入到项目中就可以了,如果我想直接访问这个首页那我应该怎么做呢?SpringMVC为我们提供了这样的一个类:WebMvcConfigurerAdapter。我们就是借助于这个类来实现我们需要的功能的。我们写一个类来继承这个类,代码如下:
package com.zkn.learnspringboot.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* Created by wb-zhangkenan on 2016/11/30.
*/
@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/",ResourceUtils.CLASSPATH_URL_PREFIX+"/image/");
super.addResourceHandlers(registry);
}
}
我们重写了addResourceHandlers这个方法来重新注册了一个资源处理器。接着我们在来访问一下看看:http://localhost:8003/templates/home.html。结果如下图所示:
注意了这里我们是直接访问的home.html这个文件。和我们预期的效果是一样的。接着可能会有人说:如果我也想在home.html中引入静态资源要怎么办呢?比如说上面的那个例子,我要引入一个一张图片。也简单,那我们就再注册一个资源处理器就OK了。Java代码如下:
package com.zkn.learnspringboot.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* Created by wb-zhangkenan on 2016/11/30.
*/
@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/");
registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/");
super.addResourceHandlers(registry);
}
}
home.html中的内容如下所示:
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"/> <title>ConanZhang的首页</title> </head> <body> 我是首页: <image src="/static/image/267862-1212151Z12099.jpg" width="100px" height="50px" /> </body> </html>
接着我们再访问以下看看什么效果:http://localhost:8003/templates/home.html
和之前的效果是一模一样的吧?
前几天在网上找了一个SpringBoot的中文开发指南,有需要的请点击这里下载吧。
这篇文章的完整版代码,github地址如下:https://github.com/zhangconan/LearnSpringBoot
项目下载地址:LearnSpringBoot_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# boot
# 静态资源
# springboot中静态资源
# spring加载静态资源
# spring boot 本地图片不能加载(图片路径)的问题及解决方法
# 在SpringBoot中静态资源访问方法
# Springboot如何加载静态图片
# 首页
# 我是
# 我想
# 怎么做
# 所示
# 会有
# 目录下
# 人说
# 看一下
# 如下图
# 如图所示
# 这是
# 就会
# 我要
# 在我
# 下载地址
# 不太
# 请点击
# 我只
# 来访问
相关文章:
重庆市网站制作公司,重庆招聘网站哪个好?
制作电商网页,电商供应链怎么做?
学校为何禁止电信移动建设网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何通过免费商城建站系统源码自定义网站主题与功能?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
南京网站制作费用,南京远驱官方网站?
如何确保西部建站助手FTP传输的安全性?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
海南网站制作公司有哪些,海口网是哪家的?
临沂网站制作公司有哪些,临沂第四中学官网?
网站制作服务平台,有什么网站可以发布本地服务信息?
如何通过主机屋免费建站教程十分钟搭建网站?
Bpmn 2.0的XML文件怎么画流程图
建站之星如何保障用户数据免受黑客入侵?
宁波免费建站如何选择可靠模板与平台?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何在服务器上配置二级域名建站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何快速配置高效服务器建站软件?
建站主机选购指南:核心配置与性价比推荐解析
如何通过.red域名打造高辨识度品牌网站?
已有域名如何免费搭建网站?
香港服务器部署网站为何提示未备案?
招贴海报怎么做,什么是海报招贴?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何选择高效响应式自助建站源码系统?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何在万网主机上快速搭建网站?
seo网站制作优化,网站SEO优化步骤有哪些?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何快速生成高效建站系统源代码?
建站之星Pro快速搭建教程:模板选择与功能配置指南
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Android自定义控件实现温度旋转按钮效果
香港网站服务器数量如何影响SEO优化效果?
建站VPS配置与SEO优化指南:关键词排名提升策略
攀枝花网站建设,攀枝花营业执照网上怎么年审?
Swift中switch语句区间和元组模式匹配
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
建站之星展会模板:智能建站与自助搭建高效解决方案
如何快速查询域名建站关键信息?
如何批量查询域名的建站时间记录?
*请认真填写需求信息,我们会在24小时内与您取得联系。